0

我正在使用ReportViewer在使用.Net 4.0的 Windows WPF应用程序上显示报告。这些报表部署在单独的SSRS 2008 报表服务器上,而不是本地计算机上。现在,我通过以下方式传递服务器的凭据:

string userName = configClient.Settings.Get("UserName").Value.ValueXml.InnerText;
string password = configClient.Settings.Get("Password").Value.ValueXml.InnerText;
string domain = configClient.Settings.Get("Domain").Value.ValueXml.InnerText;

IReportServerCredentials irsc = new ReportViewerCredentials(userName, password, domain);
_reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = irsc.NetworkCredentials;

此外,如果有任何用途,我将在 ReportViewer 中使用以下设置:

_reportViewer.ProcessingMode = ProcessingMode.Remote;
_reportViewer.ShowParameterPrompts = false;
_reportViewer.ServerReport.ReportServerUrl = new Uri(Properties.Settings.Default.ReportServer);
_reportViewer.ServerReport.ReportPath = Properties.Settings.Default.Reports;

我正在使用配置文件来保存和检索服务器访问的凭据,但我认为这不是一种安全的方法。我想以一种安全的方式实现这一点,我不需要从用户或配置文件中获取凭据。本地机器和服务器都在同一个网络上。

我不知道该怎么做,这可以通过模拟来完成,我只是猜测,因为我对安全性和模拟不太了解。另外,如果可以完成,我可以得到一个样本,或者可能是一篇文章的链接,通过它我可以完成这个。

核心思想是避免在客户端存储用户名和密码。我寻找解决方案,但我得到的本质上非常模糊。

请不要关闭此线程,因为这是一个悬而未决的问题,但这对我来说很重要,因为我正在接近截止日期并且一次要处理太多事情。如有不便,敬请见谅。

4

1 回答 1

0

我找到了一种根本不传递凭据并且仍然能够从报告服务器检索报告的方法,但并非没有帮助。

我已经使用 URL http://localhost/Reports/Pages/Folder.aspx在报告管理器中配置了一个新的角色分配。转到属性选项卡,添加一个新角色分配并添加每个人并为其提供所需的权限。

这样,我不需要从客户端为 ReportViewer 传递任何凭据。此外,它还可用于配置选定用户的访问权限。

于 2012-03-30T07:36:54.803 回答