Как передать учетные данные для просмотра отчетов в приложении WPF SSRS 2008 - PullRequest
0 голосов
/ 29 марта 2012

Я использую ReportViewer для отображения отчетов в моем приложении Windows WPF с использованием .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;

Я использую файл конфигурации для сохранения и получения учетных данных для доступа к серверу, но я не думаю, что это безопасный способ сделать это. Я хотел бы реализовать это безопасным способом, где мне не нужно брать учетные данные от пользователя или из файла конфигурации. И локальный компьютер, и сервер будут находиться в одной сети.

Я не уверен, как это сделать, может ли это быть сделано с помощью подражания, я просто догадываюсь, поскольку у меня нет большого представления о безопасности и подражании. Также, если это возможно, могу ли я получить образец или ссылку на статью, с помощью которой я могу это сделать.

Основная идея состоит в том, чтобы не хранить имя пользователя и пароль на клиенте. Я искал решение, но то, что я получил, было очень расплывчатым по своей природе.

Пожалуйста, не закрывайте эту ветку, так как это открытый вопрос, но это важно для меня, так как я приближаюсь к крайнему сроку и работаю над слишком многими вещами одновременно. Приносим извинения за доставленные неудобства.

1 Ответ

0 голосов
/ 30 марта 2012

Я нашел способ вообще не передавать учетные данные и при этом иметь возможность получать отчеты с сервера отчетов, но не без посторонней помощи.

Я настроил новое назначение ролей в диспетчере отчетов по URL-адресу http://localhost/Reports/Pages/Folder.aspx. Перейдите на вкладку «Свойства», добавьте новое назначение ролей, добавьте «Все» и предоставьте необходимые права на него.

Таким образом, мне не нужно было бы передавать какие-либо учетные данные от клиента для ReportViewer. Также его можно использовать для настройки доступа для выбранных пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...