ReportViewerを使用して、 .Net4.0を使用しているWindowsWPFアプリケーションにレポートを表示しています。これらのレポートは、ローカルマシンではなく、別のSSRS2008レポートサーバーに展開されます。現在、次の方法でサーバーの資格情報を渡しています。
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;
サーバーアクセスの資格情報を保存および取得するために構成ファイルを使用していますが、これが安全な方法ではないと思います。ユーザーまたは構成ファイルから資格情報を取得する必要がない安全な方法でこれを実装したいと思います。ローカルマシンとサーバーの両方が同じネットワーク上にあります。
方法がわかりません。これはなりすましで行うことができます。セキュリティとなりすましについてあまり理解していないので、推測しているだけです。また、それができる場合は、サンプルを入手できますか、それを介してこれを行うことができる記事へのリンクである可能性があります。
中心的な考え方は、クライアントにユーザー名とパスワードを保存しないようにすることです。私は解決策を探しましたが、私が得たものは本質的に非常に曖昧でした。
このスレッドは未解決の質問なので閉じないでください。ただし、締め切りが迫っており、一度に多くの作業を行っているため、これは私にとって重要です。ご不便をおかけして申し訳ございません。