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

通过C#应用程序发送SSRS凭证,c#,reporting-services,credentials,reportingservices-2005,C#,Reporting Services,Credentials,Reportingservices 2005,我目前正在为我的公司开发一个C#应用程序,该应用程序进入我们的SSRS服务器,运行特定的报告,格式化应用程序中的excel报告,然后将其吐出到某个位置。 应用程序正在按预期工作,只存在一点小麻烦。 每次运行特定报告类型时,必须输入SSR的凭证。 我们正在以报告的URL作为文件名打开excel文件。 这是从我们的应用程序中实际打开excel文件的代码: Microsoft.Office.Interop.Excel.Workbook excelActiveBook; excelActiveBook

我目前正在为我的公司开发一个
C#
应用程序,该应用程序进入我们的
SSRS
服务器,运行特定的报告,格式化应用程序中的excel报告,然后将其吐出到某个位置。
应用程序正在按预期工作,只存在一点小麻烦。
每次运行特定报告类型时,必须输入
SSR
凭证。
我们正在以报告的URL作为文件名打开
excel文件。
这是从我们的应用程序中实际打开
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);
有没有办法通过我们编写的应用程序将
凭证
传递给
SSRS


我们正在使用
SSRS 2005

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


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

通过编程访问SSR的方法有很多种-有关详细信息,请参阅


您只需注意,您的域没有设置代理服务器-如果用户试图将其windows凭据传递到SSRS服务器,他们可以直接传递到SSRS服务器,而不会有任何问题,但是如果首先有一个到代理的跃点,然后需要设置服务器以执行Kerberos委派。

您是否确实需要将凭据传递回报表服务器(例如,用户的数据视图是否基于其凭据)

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

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

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