Обновить членскую роль пользователя
Я использую asp.net MVC 5 identity 2.0. Администратор может изменить роль пользователя, но для его просмотра необходимо повторно войти в систему. Первой мыслью было зарегистрировать пользователя вручную, но мне это не удалось. После этого я подумал о динамически меняющейся роли пользователя или о чем-то еще. Не могли бы вы предоставить мне правильный путь? Я устанавливаю роль пользователя с помощью UserManager.AddToRolesAsync. Я пробовал много вещей, таких как:
var memberUser = Membership.GetUser(user.UserName.ToString());
if (memberUser.IsOnline)
{
FormsAuthentication.SignOut();
}
или также попытаться очистить мои куки. Я не знаю, как я могу выйти из другого пользователя. Также я прочитал статьи, подобные этим
http://w3facility.org/question/mvc-5-addtorole-requires-logout-before-it-works/
Как принудительно распространять изменения ролей среди пользователей с ASP.NET Identity 2.0.1?
Как заставить пользователя выйти из системы, когда его / ее имя изменилось другим пользователем?
1 ответ
Взгляните на ответ, предоставленный Hao Kung на этот пост, он точно описывает, как решить эту проблему с помощью SecurityStamp.
Таким образом, основная цель SecurityStamp - разрешить выход везде. Основная идея заключается в том, что всякий раз, когда что-то, связанное с безопасностью, изменяется у пользователя, например пароль, рекомендуется автоматически аннулировать любой существующий вход в файлы cookie, поэтому, если ваш пароль / учетная запись ранее была взломана, злоумышленник больше не имеет доступа.
В 2.0.0 мы добавили следующую конфигурацию, чтобы подключить метод OnValidateIdentity в CookieMiddleware для просмотра SecurityStamp и отклонения файлов cookie, когда они изменились. Он также автоматически обновляет заявки пользователя из базы данных каждый refreshInterval, если штамп не изменился (который заботится о таких вещах, как смена ролей и т. Д.)
Это должно помочь вам.