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



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





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




Для аутентификации на основе ролей применяется атрибут 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]Кол-во просмотров: 7069

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

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

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

Пароль:



Регистрация

Что для вас важнее в ПО
Его размер
7% (9)
Его цена
7% (8)
Его простота и доступность
17% (20)
Его функциональность
64% (77)
Наличие дополнительных фич
0% (0)
Наличие русского языка
5% (6)
Графицеский интерфейс
1% (1)
Изготовитель
0% (0)

Проголосовало: 121
- Сколько нужно программистов, чтобы ввернуть лампочку?
- Ни одного: это аппаратная проблема, а они этим не занимаются!
Рейтинг: 6/10 (3)
Посмотреть все анекдоты