2016-11-02 2 views
1

Ich habe ein ASP.NET MVC-Projekt, das mit SSRS über ReportingService2010 Web-Service-Endpunkte verbindet, um Berichte abzurufen und herunterzuladen.SSRS-Authentifizierung in einer MVC-Anwendung

Verbindung funktioniert gut CredentialCache.DefaultCredentials mit, wenn sie lokal mit Visual Studio läuft mit Administratorrechten

Wenn veröffentlichten virtuelles Verzeichnis oder verwendet mit NetworkCredential mit domain\username Entwicklung es nicht wie erwartet funktionieren. Ich habe den Windows-Systembenutzer in SSRS als Systemadministrator hinzugefügt.

Aktuelle Syntax, die nur funktioniert, wenn lokal in Visual Studio mit Administratorrechten ausgeführt wird.

ReportingService2010 service = new ReportingService2010(); 
service.Credentials = CredentialCache.DefaultCredentials; 
CatalogItem[] items = service.ListChildren(reportsFolderPath, true); 

Gibt es eine Möglichkeit domain\username Passwort mit NetworkCredential

ReportingService2010 service = new ReportingService2010(); 
var credentials = new NetworkCredential("insharp", "abc123", "insharp-lenovo"); 
service.Credentials = credentials; 

Antwort

0

Sie können zu konfigurieren, nicht nur ein Benutzer nur hinzufügen (zB insharp-lenovo \ insharp in Website-Einstellungen, müssen Sie diesen Benutzer geben, "browser" -Rechte und vielleicht noch etwas mehr - zum Testen geben Sie dem Benutzer einfach alle Rechte und entfernen sie dann Schritt für Schritt)

Aber anstatt den SSRS-Web-Service aufzurufen, verwenden Sie einfach den ReportViewer Kontrolle in Ihrer Anwendung?
Niemand wird jemals SSRS für Ihre Anwendung konfigurieren, also stellen Sie sich nicht auf Fehler ein. Wenn Konfiguration vermieden werden kann, dann sollte es sein. Auch dann sind Sie unabhängig vom ReportServer, der bei Kunde X installiert ist, was eine gute Sache ist.
Auch Sie wollen nicht der eingebauten SSRS-Version ausgeliefert sein.
Sie können es verwenden, um einen Bericht zu exportieren (neueste Version ist Report SSRS2016-Vorschau):

Sie können ein vollständiges Beispiel finden Sie hier:

https://github.com/ststeiger/ReportViewerWrapper

Dies ist, was Sie tun müssen, um für einen Bericht:
https://github.com/ststeiger/ReportViewerWrapper/blob/master/Embedded2016/Umzugsmitteilung.cs

Edit:
Sie haben nur den Benutzer i n die Site-Einstellungen hier: Site Settings

Jetzt müssen Sie die Benutzerberechtigungen in dem Ordner Einstellungen Registerkarte geben

Folder Settings

Klicken Sie dann auf „Assign Neue Rolle“, oder was auch immer sie genannt wird auf Englisch.

Folder Permissions

+0

Bereits hinzugefügt der Benutzer so in der SSRS. Aber es gibt kein "Browser" Recht, nur "System Administrator" und "System User". Sie müssen den Webservice verwenden, da der Endbenutzer nur die erforderlichen Parameter für den Bericht eingeben und den Bericht im Excel-Format herunterladen möchte. – chanafdo

+0

@chanafdo: Das ist nicht genug - wie ich schrieb, benötigt der Benutzer immer noch die Berechtigungen für die Ordnereinstellungen. Außerdem können Sie die Filter in Ihrer Anwendung ausführen und dann ReportViewer aufrufen. –

0

Suchen Sie Ihren reportsFolderPath Pfad in SSRS und offene Sicherheitseinstellungen für sie (Sie es durch den direkten Link erreichen können oder Verwalten> Sicherheit). Auf der Registerkarte Sicherheit sehen Sie eine Liste von Benutzern mit ihren Berechtigungen. Ihr Benutzername sollte hier sein, um auf den Inhalt des Listenordners zugreifen zu können. Wenn Ihr Benutzer in der Liste vorhanden ist, klicken Sie auf Bearbeiten, und stellen Sie sicher, dass alle Kontrollkästchen aktiviert sind. Wenn der Benutzername nicht vorhanden ist, fügen Sie einfach den neuen hinzu und aktivieren Sie alle Kontrollkästchen.

Verwandte Themen