我试图将给定的RDL报告设置为使用客户端应用程序使用嵌入式数据源。我正在使用ReportingService2005类与SSRS进行交互。我需要将嵌入式数据源设置为使用“安全存储在报表服务器中的凭据”,并指定用户名和密码。

谢谢!

最佳答案

我先发布了RDL,然后调用ReportingService2005 GetItemDataSources()方法解决了该问题。然后,我修改了该数据源,随后调用了SetItemDataSources()将更改保存到SSRS中。以下是我使用以下代码完成的代码片段:

var reportItem = report.TargetFolder + "/" + report.Name;
var dataSources = new DataSource[0];

dataSources = rs.GetItemDataSources(reportItem);
if (dataSources.Any())
{
     var dataSource = (DataSourceDefinition)dataSources.First().Item;
     dataSource.CredentialRetrieval = CredentialRetrievalEnum.Store;
     dataSource.UserName = SsrsUsername;
     dataSource.Password = SsrsPassword;

     rs.SetItemDataSources(reportItem, dataSources);
 }

10-05 21:32