Возможно, вы захотите проверить эту ссылку: http://blogs.msdn.com/b/dannychen/archive/2006/03/16/553005.aspx. Функция настройки безопасности ASP.Net является одной из наиболее часто неправильно понимаемых функций.
Основная идея заключается в том, что применяются настройки безопасностичерез тег <authorization>
в web.config, а не через роли в карте сайта.Свойство role в карте сайта может только расширить безопасность, но не сузить его.Например, вот как вы действительно примените правило ролей ученика для ~ / MemberList.aspx:
<location path="~/MemberList.aspx">
<system.web>
<authorization>
<allow roles="Student" />
<deny users="*" />
</authorization>
</system.web>
</location>
Это не только сделает ссылку исчезнувшей из вашего меню, но и фактически сделает страницу невозможнойпосетить кого-либо, не входящего в роль студента, даже если он введет URL-адрес непосредственно в браузер.Без тега <authorization>
всегда можно будет напрямую ввести URL-адрес и по-прежнему видеть страницу.