Я использую ReportViewer показать отчеты о моих окнах WPF приложение, использующее .Net 4.0. Эти отчеты развернуты на отдельном сервере отчетов SSRS 2008, а не на локальном компьютере. Сейчас я передаю полномочия сервера следующим образом:Как передать учетные данные для ReportViewer в SSRS приложения WPF 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 http: //localhost/Reports/Pages/Folder.aspx. Перейдите на вкладку «Свойства» и добавьте новое назначение роли и добавьте «Все» и предоставите необходимое право на него. Таким образом, мне не нужно будет передавать какие-либо учетные данные от клиента для ReportViewer. Кроме того, он может использоваться для настройки доступа для выбранных пользователей. –