» Главная
eXcode.ru » Статьи » ASP / ASP.NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 6





Аутентификации на основе ролей




Для аутентификации на основе ролей применяется атрибут roles тега allow. Например, если мы хотим запретить доступ всем, кроме пользователей из группы Admin , мы должны вставить такие строки в файл Web.config.

<authorization>
   <allow roles="Admin" />
   <deny users="*" />
</authorization>

      Затем при каждом запросе нужно связывать учетные записи пользователей и роли. Обычно это делается в обработчике события AuthenticateRequest в файле Global.asax.

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
   HttpApplication appl = (HttpApplication)sender;

   if (appl.Request.IsAuthenticated && appl.User.Identity is FormsIdentity)
   {
      FormsIdentity identity = (FormsIdentity)appl.User.Identity;

      DataTable tblUsers = (DataTable)Application["UsersTable"];
      appl.Context.User = new GenericPrincipal(identity,
      new string[] {(string)(tblUsers.Rows.Find(identity.Name)["Role"]) } );
   }
}

      В коде проверяется тип аутентификации пользователя и то, что он уже зарегистрирован. Имя пользователя извлекается из cookie свойством Name. Таблица с именами пользователей и их ролями для повышения быстродействия была сохранена в объекте Application. Из этой таблицы и находим роль пользователя, которую сохраняем в объекте GenericPrincipal.

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-14 09:02:40
Рейтинг статьи:5.00 [Голосов 1]Кол-во просмотров: 6401

Комментарии читателей

Всего комментариев: 1

2012-04-20 14:38:19
Нарзан
Кратко и элементарно! Именно то, что я искал! А не весь тот бред и словоблудие на майкрософте и извержение потоков индивидуумов, которые слишком много о себе мнят, но самого принципа рассказать не могут.
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Каким браузером вы пользуйтесь?
MS Internet Explorer
22% (66)
Mozilla
3% (8)
Mozilla Firefox
26% (77)
Opera
43% (130)
Konqueror
1% (3)
Netscape
0% (0)
Lynx
0% (0)
Galeon
0% (0)
Другим
5% (15)

Проголосовало: 299
- Миколо, ты що свою домашню строныцю на домен "ru" засувов?
- А шо?
- Так то ж "Раша"!
- От, гады! А я думав, Ридно Украина!
Рейтинг: 7/10 (3)
Посмотреть все анекдоты