我正在使用 ASP.Net 和 C# 前端来运行一些报告。我想打开到报表使用的数据源的 SQL 连接。
当报表使用集成安全性时,创建连接很容易,但是我想在报表服务器存储用户名和密码时创建连接。
我可以使用
获取 SQL Server 路径和初始目录 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);
// ....
}
我还可以使用获取用户名
username = dsDefinition.UserName;
但是如果我使用
password = dsDefinition.Password;
密码= null,不能用于打开Sql连接。
有没有办法创建使用数据源的连接字符串以及用户名和密码凭据的 SQLConnection?
我正在使用 Reporting Services 2008 和 .NET 3.5,并通过 Web 引用 ReportService2005.asmx 和 ReportExecution2005.asmx
最佳答案
我真的认为这是不可能的,因为这几乎会构成一个安全漏洞。我知道这不是您正在寻找的答案,但我会参数化您的报告的位置(即您的 MSRS 服务器的 IP/名称)并将它们与匹配的 SQL 实例一起存储在您的 web.config 中。虽然这并不完全是您想要的,但我认为这已经是您想要的最接近的了。
关于c# - 如何获取 SSRS 数据源凭据并在 .NET 中打开 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/604900/