通过C#应用程序发送SSRS凭证

时间:2009-10-15 15:20:18

标签: c# reporting-services credentials reportingservices-2005

我目前正在为我的公司制作一个C#应用程序,该应用程序会发送到我们的SSRS服务器,运行特定报告,格式化应用程序中的Excel报告,然后将它们吐出到某个位置。
该应用程序按预期工作,只有一点点烦恼 每次运行特定报告类型时,都必须输入credentials SSRS 我们打开excel file并将报告的网址作为文件名 这是实际从我们的应用程序中打开excel文件的代码:

Microsoft.Office.Interop.Excel.Workbook excelActiveBook; 
excelActiveBook = excelApp.Workbooks.Open(reportURL, 0, false, 5,     System.Reflection.Missing.Value, System.Reflection.Missing.Value, false, System.Reflection.Missing.Value, System.Reflection.Missing.Value, true, false, System.Reflection.Missing.Value, false, false, false);

有没有办法通过我们编写的这个应用程序将credentials传递给SSRS 我们正在使用SSRS 2005

3 个答案:

答案 0 :(得分:0)

这是Reporting Services服务器上数据源的设置。

登录SSRS服务器并转到数据源。编辑有问题的数据源,并选择使用调用程序中的凭据的选项。

答案 1 :(得分:0)

有许多方法可以以编程方式访问SSRS - 有关详细信息,请参阅here

您只需要注意您的域没有设置代理服务器 - 如果用户尝试将其Windows凭据传递给SSRS服务器,他们可以直接执行此操作而没有问题,但是如果有首先是代理的跃点,然后需要设置服务器以执行Kerberos委派。

答案 2 :(得分:0)

您是否真的需要将凭据传递回报表服务器(例如,用户是否根据其凭据查看数据)?

如果不常见,则创建域帐户,将该帐户权限授予源数据库,然后使用“安全存储在报表服务器中的凭据”修改报表服务器上的数据源属性(使用报表管理器)进行连接,输入域帐户用户名和密码,然后选择“连接时用作Windows凭据”。

如果您的数据源不支持Windows身份验证,您可以使用标准登录(例如SQL Server身份验证)实现相同的功能,显然您不会在数据源属性上选择“用作Windows凭据..”。 / p>

这样,报表服务器访问数据源所需的凭据将在内部存储,而不需要调用报表 - 然后需要通过前端应用程序中的权限来管理安全性。