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



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





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




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

Рейтинг статьи:0.00 [Голосов 0]Кол-во просмотров: 2731
Оцените статью:

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

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какую музыку вы предпочитаете?
Techno
11% (29)
Rap
10% (25)
Rock
48% (126)
Trance
10% (27)
Pop
7% (17)
house
5% (13)
Классическую
7% (19)
Я не слушаю музыку
2% (4)

Проголосовало: 260
Компьютерный магазин. Заходит покупатель - толстый упакованный армянин.
АРМЯНИН: День добрый!
ПРОДАВЕЦ: Здравствуйте!
А: Компьютеры есть хорошие?
П: Есть, вот модель - Аквариус.
А: А сколько у него памяти?
П: 4,3 гига винт, 32 метра димм, 4 метра видео, 512 килов кэш.
А: И сколько это вместе?
Рейтинг: 5/10 (1)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » ASP / ASP.NET