Ich habe eine Anwendung, wo ich einen SSRS-Bericht über den SOAP Web Service rendern. Ich versuche, die Anmeldeinformationen an den ReportExecutionService zu übergeben, der von der Datenquelle für den Datenbankzugriff verwendet wird.SSRS DataSourceCredentials und Windows-Authentifizierung
Dies funktioniert derzeit mit SQL-Authentifizierung. Ich versuche herauszufinden, wie dies für einen Benutzer funktioniert, der für die Datenbank mit Windows-Authentifizierung konfiguriert ist. Das Benutzerkonto ist ein Domänenbenutzerkonto und ich habe diesen Benutzer der Datenbank und der Rolle db_owner hinzugefügt.
Wenn passiere ich die Anmeldeinformationen für ein Windows-Benutzerkonto und führen Sie SQL Profiler bekomme ich folgende Fehlermeldung:
Login failed for user 'ourdomain\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: <local machine>]
Der folgende Code ist die (abgekürzt) Code, der arbeitet, wenn die Anmeldeinformationen für ein vorübergehendes SQL User, aber mit der obigen Meldung Fehler, wenn das Domain-Benutzer-Credentials vorbei:
public static byte[] RunReport(string reportPath, List<ReportParameter> reportParameters, ReportOutputType outputType)
{
ReportExecutionService reportExecutionService = new ReportExecutionService();
var creds = new DataSourceCredentials[1];
creds[0] = new DataSourceCredentials() { DataSourceName = "DynamicDataSource", UserName = ReportUserDomain + @"\" + ReportUserAccount, Password = ReportUserPassword };
reportExecutionService.LoadReport(reportPath, null);
reportExecutionService.SetExecutionCredentials(creds);
return reportExecutionService.Render(Enum.GetName(typeof(ReportOutputType), outputType), GetDeviceInfo(outputType), out extension, out mimetype, out encoding, out warning, out streamids);
}
Bitte beachte, dass ich den ReportUserDomain Parameter zu dem DataSourceCredentials hinzugefügt, um zu versuchen dies für Windows Auth zur Arbeit zu kommen, den Code, der derzeit workin g für die SQL-Authentifizierung enthält diese Variable nicht.
Jede Hilfe wird sehr geschätzt.