Я искал в интернете и не могу найти точное решение.Извините, это немного долго, но я надеюсь, что кто-то может мне помочь.
Я работаю над веб-системой с использованием 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?Или, может быть, есть другой способ решить эту проблему?Я не могу разобраться с этим.
Заранее спасибо за любую помощь!