#c# #asp.net #web-config
#c# #asp.net #web-config
Вопрос:
Мой вопрос довольно наивный, и я приношу извинения за это.Мой файл веб-конфигурации для папки с ограниченным доступом выглядит следующим образом
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Member" />
<allow roles="Admin" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
Теперь это относится ко всем страницам в папке, есть ли способ, которым я могу изменить это так, чтобы любой пользователь с ролью участника имел доступ, скажем, только к members.aspx, в то время как администратор будет иметь доступ к целой куче страниц.
Я думаю, я мог бы сделать это, создав разные папки и сохранив в них разные страницы и назначив webconfig по мере необходимости, но мне было интересно, возможно ли иметь авторизацию на уровне страницы (на основе ролей) в одной папке
Спасибо!
Ответ №1:
Вы можете указать доступ к различным конкретным URL-адресам на вашем сайте, используя элементы location. Обратите внимание, что вы можете настроить все расположения из вашего родительского web.config; наличие нескольких файлов web.config для этого не обязательно.
<location path="members.aspx">
<system.web>
<authorization>
<allow roles="Member" />
<allow roles="Admin" />
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="adminsonly.aspx">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="?" />
</authorization>
</system.web>
</location>
Комментарии:
1. Хотя несколько web.configs не нужны, я предпочитаю сохранять настройки авторизации как можно ближе к страницам. Это значительно упрощает обслуживание.