Разные авторизации для разных страниц?

#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 не нужны, я предпочитаю сохранять настройки авторизации как можно ближе к страницам. Это значительно упрощает обслуживание.