SSRS 以编程方式设置 "Credentials stored securely in the report server"

SSRS Set "Credentials stored securely in the report server" programmatically

我正在尝试通过我的客户端应用程序将给定的 RDL 报告设置为使用嵌入式数据源。我正在使用 ReportingService2005 class 与 SSRS 交互。我需要将嵌入式数据源设置为使用 "Credentials stored securely in the report server" 并指定用户名和密码。

谢谢!

我通过首先发布 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);
 }