Настройки авторизации ASP.NET - PullRequest
0 голосов
/ 25 июня 2010

Я хочу установить разрешение на авторизацию в приложении ASP.NET.

Следовательно, в одной конкретной папке я хочу запретить доступ одному конкретному пользователю, чья роль предоставляется как разрешающая для этого конкретного.

 <authorization>
            <allow roles="General" />
            <allow roles="Sale" />
            <allow roles="Administrator" />
            <deny users="admin_test" />
 </authorization>

Однако при попытке доступастраницы из этой конкретной папки, используя учетную запись admin_test, система позволяет мне получить доступ к странице, а не отказывать в доступе.

Может кто-нибудь указать, что не так с вышеуказанной конфигурацией?очень ценится.

С уважением,

Ран

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

Сначала необходимо указать deny. Модуль авторизации остановится на первом правиле соответствия :

Во время выполнения модуль авторизации перебирает элементы allow и deny, начиная с самого локального файла конфигурации, пока модуль авторизации не найдет первое правило доступа, соответствующее конкретной учетной записи пользователя. Затем модуль авторизации предоставляет или запрещает доступ к ресурсу URL в зависимости от того, является ли первое найденное правило доступа разрешающим или запрещающим правилом.

1 голос
/ 25 июня 2010

Согласно http://msdn.microsoft.com/en-us/library/wce3kxhd.aspx

Правила применяются следующим образом:

Правила, содержащиеся на уровне приложения файлы конфигурации имеют приоритет по унаследованным правилам. Система определяет, какое правило имеет приоритет путем построения объединенного списка всех правила для URL, с самыми последними правила (те, которые ближе всего в иерархии) во главе списка.

Учитывая набор объединенных правил для ASP.NET запускается в глава списка и проверяет правила пока не найдено первое совпадение. конфигурация по умолчанию для ASP.NET содержит элемент, который авторизует всех пользователей. (От по умолчанию это правило применяется последним.) Если другие правила авторизации не совпадают, запрос разрешен. Если совпадение найдено, и совпадение является отрицательным элементом, запрос возвращается с 401 Код статуса HTTP. Если разрешить элемент соответствует, модуль позволяет запрос для дальнейшей обработки.

Таким образом, если пользователь admin_test имеет какую-либо из ролей General, Sale, Administrator, он сначала совпадет и разрешит доступ. Попробуйте поставить запрещающее правило, прежде чем разрешить правила.

...