我正在使用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;
我正在使用配置文件来保存和检索服务器访问的凭据,但我认为这不是一种安全的方法。我想以一种安全的方式实现这一点,我不需要从用户或配置文件中获取凭据。本地机器和服务器都在同一个网络上。
我不知道该怎么做,这可以通过模拟来完成,我只是猜测,因为我对安全性和模拟不太了解。另外,如果可以完成,我可以得到一个样本,或者可能是一篇文章的链接,通过它我可以完成这个。
核心思想是避免在客户端存储用户名和密码。我寻找解决方案,但我得到的本质上非常模糊。
请不要关闭此线程,因为这是一个悬而未决的问题,但这对我来说很重要,因为我正在接近截止日期并且一次要处理太多事情。如有不便,敬请见谅。