如何在WPF应用程序SSRS 2008中将凭据传递给reportviewer

如何在WPF应用程序SSRS 2008中将凭据传递给reportviewer,wpf,c#-4.0,ssrs-2008,reportviewer,networkcredentials,Wpf,C# 4.0,Ssrs 2008,Reportviewer,Networkcredentials,我正在使用ReportViewer在我的windowsWPF应用程序上使用.Net 4.0显示报告。这些报告部署在单独的SSRS 2008报表服务器上,而不是本地计算机上。现在,我以以下方式传递服务器的凭据: string userName = configClient.Settings.Get("UserName").Value.ValueXml.InnerText; string password = configClient.Settings.Get("Password").Value.V

我正在使用ReportViewer在我的windowsWPF应用程序上使用.Net 4.0显示报告。这些报告部署在单独的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;
我使用配置文件来保存和检索服务器访问的凭据,但我认为这不是一种安全的方法。我希望以一种安全的方式实现这一点,不需要从用户或配置文件获取凭据。本地计算机和服务器将位于同一网络上

我不知道怎么做,这可以通过模拟来完成吗,我只是猜测,因为我对安全性和模拟没有太多的概念。此外,如果可以,我可以得到一个样本,或可能是一个链接到一篇文章,通过它我可以做到这一点

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


请不要关闭此线程,因为这是一个开放的问题,但它对我来说很重要,因为我正在接近最后期限,一次要处理太多的事情。很抱歉给您带来不便。

我找到了一种方法,可以完全不传递凭据,并且仍然能够从报表服务器检索报表,但不能没有帮助

我已使用URL在报表管理器中配置了新的角色分配。转到“属性”选项卡,添加新的角色分配,添加所有人,并提供所需的权限


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

我找到了一种完全不传递凭据的方法,并且仍然能够从报表服务器检索报表,但不需要帮助。我已使用URL在报表管理器中配置了新的角色分配。转到“属性”选项卡,添加新的角色分配,添加所有人,并提供所需的权限。这样,我就不需要从客户端为ReportViewer传递任何凭据。此外,它还可用于配置选定用户的访问权限。