Вы можете попробовать добавить элемент 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)
Запретить элемент для авторизации (схема настроек ASP.NET)
Настройка правил авторизации для определенной страницы или папки в web.config
Похожие проблемы:
Авторизация для запрета доступа к страницам в папке не работает
Запретить анонимным пользователям проблему