Аутентификация по уникальным формам в двух разных папках ASP.NET - PullRequest
0 голосов
/ 15 ноября 2011

В моем веб-приложении есть две области, доступные пользователю, одна обычная область, доступная для обычных пользователей, и одна область, доступная для администраторов.

Обычная:

http://www.myapp.com/Home.aspx

Администратор:

http://www.myapp.com/admin/Home.aspx

Одна из возможностей в области администрирования - вы можете ввести любое имя пользователя в текстовое поле и войти в систему от имени «обычного» пользователя.Итак, вот моя проблема:

  1. Администратор входит в систему как «admin@yahoo.com».
  2. Администратор затем входит в систему от имени «регулярного пользователя@yahoo.com»
  3. Теперь администратор переходит на другую страницу в папке / admin, но вместо того, чтобы работать, Auth Forms теперь переименовывает их в "normaluser@yahoo.com"

Вот мой вопрос:

Есть ли способ иметь совершенно другую запись аутентификации форм для папки "/ admin"?Если я аутентифицирую кого-либо в этой папке, может ли он иметь другой файл cookie Auth Forms, чем обычное приложение?Может ли он иметь другой логин для обычного и админа?

1 Ответ

0 голосов
/ 15 ноября 2011

Хм, интересно.Поставщик членства Asp.net не будет поддерживать это сразу.Если я правильно понимаю, вам нужно разрешить «администратору» использовать сайт в качестве «обычного пользователя», сохраняя свои права администратора (роли).Если это так, я бы создал специальную страницу входа для администраторов, которая требует следующую информацию: имя пользователя admin, пароль администратора, имя пользователя для олицетворения.Выполните следующие действия:

  1. Проверка пользователя с правами администратора ( MembershipProvider.ValidateUser )
  2. , если учетные данные действительны, войдите в систему как «administrator» ( FormsAuthentication.SetAuthCookie )
  3. Добавление «регулятора пользователя» к роли администратора ( Roles.ложно.Это предотвращает вход и получение прав администратора с правами обычного пользователя.

Предоставление специальной страницы выхода из системы:

  • Отмена роли администратора: Roles.RemoveUserFromRole
  • Сброс 'IsApproved =' true 'для обычного пользователя
  • Выход из системы ( FormsAuthentication.SignOut ())

Удачи.Дайте мне знать, как это происходит!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...