Ich habe SSRS auf meinem localhost eingerichtet und verwendet BIDS, um ein paar Berichte über sie zu erstellen. Sie greifen auf Daten von demselben SQL Server zu, auf dem der SSRS bereitgestellt wird, und wenn ich sie in der Vorschau anzeigen lasse, laufen sie einwandfrei. Dann habe ich sie auf meinem SSHRS von localhost deployed und über die Weboberfläche von ReportManager darauf zugegriffen. Schließlich habe ich sie auf dem SSRS meines Hosting-Providers bereitgestellt. Gleicher Deal; gute Datenverbindung und es sieht gut aus im ReportManager.Verwenden von SSRS mit ASP.Net ReportViewer
Wenn ich sie zum ersten Mal über den ReportManager auf einem der beiden Systeme zugreife, muss ich meinen Benutzernamen und mein Passwort eingeben, was auf meinem Laptop nur meine Anmeldung und mein Passwort ist. Für meinen Hosting-Provider ist es meine Kontoanmeldung für sie.
Mein Problem ist, wenn ich versuche, einen Bericht mit dem ReportViewer-Steuerelement in ASP.Net anzuzeigen. Sehr oft, wenn es versucht zu rendern, bekomme ich eine "Bad Logon" oder "401: Unauthorized" statt meines Berichts. Nach langem Lesen und Nachdenken glaube ich, dass ich mich nicht beim SQL Server anmelden muss, sondern bei der Website (Webdienst?), In der meine Berichte veröffentlicht werden. Wenn ich jetzt keine Zugangsdaten zur Verfügung stelle, kann ich meine lokalen Berichte (normalerweise) im ReportViewer abrufen. Wenn ich die Berichte jedoch auf einem Remote-Server bereitstellen, funktioniert das nicht mehr.
Nach einigen Nachforschungen habe ich eine Klasse erstellt, die IReportServerCredentials implementiert und versucht, den Benutzernamen und das Kennwort zu verwenden, aber das scheint nicht zu funktionieren. Und es hat mich verwirrt, ob diese Anmeldeinformationen für die Datenquelle oder für den Webdienst sein sollen.
Wenn mir jemand sagen könnte, wie man den ReportViewer dazu bringt, sich beim SSRS-Webservice anzumelden, würde ich es sehr begrüßen.
Tatsächlich habe ich einen Fehler bekommen, als ich an einem anderen Staging-Ort deployed habe, dass das NT-Konto, das ich benutzt habe, nicht die Rechte hatte, um diese Aktion durchzuführen. Das Verständnis für den Identitätswechsel und das Konto, unter dem meine Anwendungen laufen, muss ich stärker berücksichtigen. Am Ende konnte ich dieses Ding jetzt ausführen, indem ich eine Rolle für "BUILTIN \ Users" von "Browser" hinzufügte. Es funktioniert, aber ich bin nicht verrückt danach, weil ich denke, dass es im Grunde bedeutet, dass der Bericht jetzt überhaupt nicht gesperrt ist. Ich werde weiterhin die Antworten verfolgen, die ich hier bekomme. –
Am Ende habe ich es schließlich herausgefunden, indem ich die von mir erstellte Berechtigungsnachweisklasse genauer untersucht habe und sie mit Beispielcode verglichen habe, von dem ich wusste, dass er funktioniert. Es stellte sich heraus, dass ich "True" von meiner GetFormsCredentials() -Methode zurückgab. Da ich nie die Formularauthentifizierung verwenden wollte, hätte ich "False" zurückgegeben."Alle" out "-Parameter für diese Methode wurden auf NULL gesetzt, so dass die Authentifizierung nie richtig durchgeführt wurde, und ich habe es nicht bemerkt. –
Awesome. Wir stießen auf die gleichen Probleme, als wir versuchten, SSRS mit unseren zu integrieren Am Ende waren wir in der Lage, die Berechtigungen genau richtig zu bekommen, aber es war schmerzhaft. – jvilalta