我目前正在为我的公司制作一个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
。
答案 0 :(得分:0)
这是Reporting Services服务器上数据源的设置。
登录SSRS服务器并转到数据源。编辑有问题的数据源,并选择使用调用程序中的凭据的选项。
答案 1 :(得分:0)
有许多方法可以以编程方式访问SSRS - 有关详细信息,请参阅here。
您只需要注意您的域没有设置代理服务器 - 如果用户尝试将其Windows凭据传递给SSRS服务器,他们可以直接执行此操作而没有问题,但是如果有首先是代理的跃点,然后需要设置服务器以执行Kerberos委派。
答案 2 :(得分:0)
您是否真的需要将凭据传递回报表服务器(例如,用户是否根据其凭据查看数据)?
如果不常见,则创建域帐户,将该帐户权限授予源数据库,然后使用“安全存储在报表服务器中的凭据”修改报表服务器上的数据源属性(使用报表管理器)进行连接,输入域帐户用户名和密码,然后选择“连接时用作Windows凭据”。
如果您的数据源不支持Windows身份验证,您可以使用标准登录(例如SQL Server身份验证)实现相同的功能,显然您不会在数据源属性上选择“用作Windows凭据..”。 / p>
这样,报表服务器访问数据源所需的凭据将在内部存储,而不需要调用报表 - 然后需要通过前端应用程序中的权限来管理安全性。