4

У меня есть сайт ASP.NET, использующий защиту на основе ролей через SQLMemberShipProvder.Может ли SQL Reporting Services работать с ASP Membership Provider?

Возможно ли предоставление доступа в Интернет к отчетам SSRS с использованием существующих существующих ролей MembershipProvider?

Например, если у меня есть роль SupportPersonRole, могу ли я разрешить только определенным лицам использовать эту роль?

Документы говорят, что SQL 2008 R2 использует базовый auth для локального органа безопасности. Однако, если SSRS может представить свой собственный базовый авторизационный вход для контента SSRS, я не уверен, как получить шанс разрешить использование ролей MembershipProvider.

На странице ASP.Net необходимо обработать запрос параметров отчета, поэтому, похоже, это означает, что «удаленный» режим подходит для получения этой функции.

Сбивая с толку часть SSRS (в удаленном режиме) имеет свои собственные учетные данные безопасности, которые отделены от безопасности на основе ASP.Net. Итак, как вы избегаете управления безопасностью в обоих местах?

ответ

4

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

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

+0

Это сайт MVC - для управления, на который вы ссылаетесь, требуются WinForms? – Lee

+0

Это так, но есть способы и средства. Множество ссылок, например, http://stackoverflow.com/questions/4137835/viewing-ssrs-reports-in-an-asp-net-mvc-site – Paddy

+0

Хорошо, что эта ссылка доказывает, что элемент управления может работать в MVC как страница ASPX. Но критическая часть вопроса по-прежнему находится на этой странице ASPX, как конкретный отчет может быть ограничен конкретной ролью MembershipProvider? – Lee

4

Вы также можете сделать вывод LocalReport на выводе по вашему выбору. Это может быть хорошим вариантом, если вам не нужно столько вариантов, как предлагает контроль.

// Controller Action 
public ActionResult GetReport(ReportParameters foo) 
{ 
    string mimeType; 
    var stream = foo.RenderReport(out mimeType); 
    return new FileStreamResult(stream, mimeType); 
} 

class ReportParameters { 
    public Stream RenderReport(out string mimeType) 
    { 
     var localReport = new LocalReport(); 
     // ... TODO: Set up report data sources render call out variales, etc. 
     byte[] renderedBytes; 
     renderedytes = localReport.Render(
       reportType, 
       deviceInfo, 
       out mimeType, 
       out encoding, 
       out fileNameExtension, 
       out streams, 
       out warnings); 
     return new MemoryStream(renderedBytes); 
    } 
} 
+0

Если я правильно понимаю, локальный режим не обеспечивает автоматического запроса параметров отчета (rdl vs. rdlc). – Lee

+0

Это правильно. –

Смежные вопросы