ASP web.config авторизация для новых ролей, добавленных пользователями - PullRequest
1 голос
/ 17 марта 2012

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

Я работаю над веб-системой с использованием ASP.Net (4.0).Эта система позволяет администратору добавлять новые роли.Помимо добавления новых ролей, администратор может также установить разрешения для роли для доступа к различным страницам.

Например, по умолчанию роль пользователя может иметь доступ только к домашней странице и.Скажем, администратор решает установить новое разрешение для этой роли и позволяет ему получить доступ к другой странице (например: ManageUsers.aspx)

Я использую Аутентификацию по формам через web.config.Веб-страницы находятся в двух отдельных папках, по одной для каждой роли (Администратор и Пользователь).В каждой папке другой web.config определяет, какие роли могут обращаться к страницам в этой папке.

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow roles="2"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</configuration>

Проблема заключается в том, что если администратор предоставляет доступ к роли пользователя для страницы (например, ManageUsers.aspx), который расположен в папке «Администратор», роли «Пользователь» запрещен доступ к этой странице, поскольку только роль администратора может получить доступ к этим страницам.

Первым решением, о котором я подумал, было изменение файла web.config во время выполнения.но это будет перезапускать приложение каждый раз, когда изменяется web.config.

Второе решение - перечисление страниц, к которым каждая роль может получить доступ, из таблицы базы данных или файла XML.Я не уверен, будет ли это работать, если я все еще использую проверку подлинности с помощью форм.Должен ли я использовать местоположения в файлах web.config?Или, может быть, есть другой способ решить эту проблему?Я не могу разобраться с этим.

Заранее спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...