c# - 如何获取 SSRS 数据源凭据并在 .NET 中打开 SQL 连接

标签 c# .net sql-server reporting-services

我正在使用 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/

相关文章:

c# - 使用线程保持 UI 更新

c# - 如何使用 NServiceBus 在 AWS 中实现消息队列和处理

javascript - Microsoft Lightswitch 使用 c#、jquery mobile 和 javascript 创建动态用户界面

c# - 如何显示(或写入文件)希腊字符?

C# - : String. Contains() 或 Regex.isMatch() 哪个更快?

mysql - 优化 SQL 查找体育(篮球)阵容

sql - 如何管理数据库中的 "groups"?

c# - 如何在 ASP.NET 中获取客户端日期和时间?

c# - 如何使 + 运算符在将两个点相加时起作用?

sql-server - 游标读取失败。 @@FETCH_STATUS 为 -1