ReportViewerForMvc ограничивает доступ к ReportViewerWebForm.aspx
Я использую ReportViewerForMvc, и он устанавливает ReportViewerWebForm.aspx в корневую папку проекта. Как ограничить доступ к ReportViewerWebForm.aspx? я пытался
<location path="ReportViewerWebForm.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Однако это приводит к тому, что.aspx отказывает в доступе даже зарегистрированным пользователям.
2 ответа
Решено путем добавления выделенного кода и создания подкласса ReportViewerForMvc.ReportViewerWebForm, проверка пользователя в событии Page_Load с использованием cookie-файла сеанса.
Вы можете попробовать добавить allow
элемент для всех аутентифицированных / авторизованных пользователей после deny
элемент:
<location path="ReportViewerWebForm.aspx">
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
</location>
Или попробуйте этот пример:
<configuration>
<system.web>
<!-- authentication element -->
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="ReportViewerWebForm.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration>
"?" принадлежит неаутентифицированным / анонимным пользователям (не вошли в систему), а "*" принадлежит всем остальным. Первое соответствующее правило авторизации всегда обрабатывается первым, сверху вниз.
Если вы хотите ограничить доступ к странице средства просмотра отчетов, разрешив открывать ее только определенным ролям, используйте схему авторизации, как в примере ниже (укажите все разрешенные роли, разделенные запятой):
<location path="ReportViewerWebForm.aspx">
<system.web>
<authorization>
<allow roles="rolename_1,rolename_2,..." />
<deny users="*" />
</authorization>
</system.web>
</location>
Примечание: убедитесь, что у вас уже есть authentication
элемент перед использованием правил авторизации:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" ... />
</authentication>
Рекомендации:
разрешить элемент для авторизации (схема настроек ASP.NET)
Элемент deny для авторизации (схема настроек ASP.NET)
Настройка правил авторизации для определенной страницы или папки в web.config
Похожие проблемы:
Разрешение на запрет доступа к страницам в папке не работает