2009-03-03 3 views
2

Ich verwende ein ASP.Net- und C# -Protokoll, um einige Berichte auszuführen. Ich möchte eine SQL-Verbindung zu der vom Bericht verwendeten Datenquelle öffnen.So erhalten Sie die SSRS-Datenquellenanmeldeinformationen und öffnen eine SQL-Verbindung in .NET

Wenn der Bericht integrierte Sicherheit verwendet, ist es leicht genug, eine Verbindung zu erstellen. Ich möchte jedoch eine Verbindung herstellen, wenn der Benutzername und das Kennwort vom Berichtsserver gespeichert werden.

Ich kann SQL Server-Pfad und Anfangskatalog erhalten,

DataSource[] dataSources; 
    DataSourceReference dsReference; 
    DataSourceDefinition dsDefinition; 
    string dsPath; 
    ReportingService2005 rs = new ReportingService2005(); 

    dataSources = rs.GetItemDataSources(reportPath); 
    if (dataSources.Length > 0) 
    { 
     dsReference = (DataSourceReference)dataSources[0].Item; 
     dsPath = dsReference.Reference; 
     dsDefinition = rs.GetDataSourceContents(dsPath); 
     // .... 
    } 

mit Ich kann auch die Benutzername

username = dsDefinition.UserName; 

jedoch mit, wenn ich

password = dsDefinition.Password; 

Passwort verwenden = null und kann nicht zum Öffnen der SQL-Verbindung verwendet werden.

Gibt es eine Möglichkeit, eine SQLConnection zu erstellen, die die Verbindungszeichenfolge sowie den Benutzernamen und das Kennwort einer Datenquelle verwendet?

Ich bin mit Reporting Services 2008 und .NET 3.5 mit Web-Verweise auf ReportService2005.asmx und ReportExecution2005.asmx

Antwort

2

Ich glaube wirklich nicht, es möglich ist, da dies so ziemlich eine Sicherheitslücke darstellen. Ich weiß, dass dies nicht die Antwort ist, nach der Sie suchen, aber ich würde die Position Ihrer Berichte (d. H. Die IP/Name Ihres MSRS-Servers) parametrisieren und sie zusammen mit einer passenden SQL-Instanz in Ihrer web.config speichern. Obwohl es nicht genau das ist, wonach du suchst, denke ich, dass es so nah ist, wie du es bekommen wirst.

+0

Ich hatte gehofft, dass das nicht der Fall war, aber ich war mir nicht sicher: P Danke trotzdem – Sophia