SOAP Webサービス経由でSSRSレポートをレンダリングするアプリケーションがあります。私がしようとしているのは、データベースアクセスのためにデータソースによって使用されるReportExecutionServiceに資格情報を渡すことです。SSRS DataSourceCredentialsとWindows認証
これは現在、SQL認証を使用して動作しています。私が理解しようとしているのは、Windows認証を使用してデータベース用に構成されたユーザーに対して、これを動作させる方法です。ユーザーアカウントはドメインユーザーアカウントで、このユーザーをデータベースとdb_ownerロールに追加しました。
私は、Windowsのユーザーアカウントの資格情報を渡すと、SQLプロファイラを実行すると、I、次のエラーメッセージが表示されます。
Login failed for user 'ourdomain\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: <local machine>]
次のコードは、のために資格情報を渡すときに働いている(省略)コードでありますSQLユーザーが、ドメインユーザーの資格情報を渡すときに、上記のメッセージで失敗:私は、これはWindowsの認証、現在働いているコードのために働くために取得しようとするDataSourceCredentialsにReportUserDomainパラメータを追加
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);
}
注意gのSQL認証にはこの変数は含まれていません。
ご協力いただきまして誠にありがとうございます。