Transmission des informations d'Identification de Rapport Sql Server 2008
Je suis assez nouveau en C# et mon anglais n'est pas si bon désolé à l'avance si j'oublie de prendre un point.
J'ai essayé de construire un ASP.NET site web avec un ReportService
de contrôle. Comme vous le savez peut être déjà, SSRS 2008 n'autorise pas la connexion anonyme. Donc, j'ai essayé de transmettre des informations d'Identification pour SSRS qui seront stockées à l'intérieur de ma page web afin que les utilisateurs seront en mesure de voir le rapport sans ouvrir de session.
J'ai trouvé le code ci-dessous et de le mettre sur mon WebForm
, mais je vais avoir un problème avec les paramètres de rapport.
-
Si il y a des valeurs par défaut pour les paramètres de rapport, le code ci-dessous
fonctionne bien. -
Mais, si j'essaie de modifier la valeur d'un paramètre, la page entière est
rafraîchi et avant que je clique sur "voir le Rapport" bouton, toutes
les paramètres sont réinitialisés à leur valeur par défaut ou la valeur null.
Toute suggestion sur la façon d'éviter l'actualisation de la page entière, ou une autre façon de transmettre les informations de connexion à la SSR? Merci beaucoup à l'avance.
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using Microsoft.Reporting.WebForms;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReportViewer1.Width = 800;
ReportViewer1.Height = 600;
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
IReportServerCredentials irsc =new CustomReportCredentials("administrator", "MYpassworw", "domena");
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
ReportViewer1.ServerReport.Refresh();
}
}
public class CustomReportCredentials : IReportServerCredentials
{
private string _UserName;
private string _PassWord;
private string _DomainName;
public CustomReportCredentials(string UserName, string PassWord, string DomainName)
{
_UserName = UserName;
_PassWord = PassWord;
_DomainName = DomainName;
}
public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get { return new NetworkCredential(_UserName, _PassWord, _DomainName); }
}
public bool GetFormsCredentials(out Cookie authCookie, out string user,
out string password, out string authority)
{
authCookie = null;
user = password = authority = null;
return false;
}
}
- Êtes-vous sûr qu'ils ont laissé tomber Anonyme auth de SSRS 2008? Vous pourriez juste besoin de le configurer dans IIS?
- From: blogs.msdn.com/jameswu/archive/2008/07/15/... Donc ce qui est arrivé à la bonne vieille authentification anonyme est de RS 2005? La réponse courte est qu'il n'est plus pris en charge.
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas testé avec SSRS - mais mon ASP.NET chapeau me dit vous pouvez l'envelopper dans un
if (!IsPostBack)
bloc pour empêcher son exécution sur l'actualisation de la page. Ma conjecture est queReportViewer1.ServerReport.Refresh()
tire les valeurs par défaut de nouveau.J'ai fait de nouvelles fonctions et ramassé dans la vue de conception sur les propriétés, les événements, les reportViewer. (Dans la sélection INIT i)
Après que la page fonctionne normalement et je peux changer les valeurs des paramètres.
Par défaut.aspx ressemble maintenant à:
Et Par Défaut.aspx.cs ressemble à ceci
vous pouvez utiliser le code suivant dans l'événement de chargement de page pour donner des paramètres
J'espère que ce qui fonctionne pour vous
j'ai trouvé la solution pour cela.
vous devez définir les informations d'identification d'abord, puis vous devez régler le paramètre pour reportviewer.