Как я могу выйти из системы другого пользователя (не текущего) в ASP.NET Core Identity.
Как выйти из системы другого пользователя в ASP.NET Core Identity
Ответы (2)
Сначала обновите штамп безопасности этого пользователя:
await userManager.UpdateSecurityStampAsync(user)
Тогда этот пользователь не заметит изменений до появления SecurityStampValidationInterval
. Поэтому установите значение Zero
для немедленного выхода из системы:
services.AddIdentity<User, Role>(identityOptions =>
{
// enables immediate logout, after updating the user's stat.
identityOptions.SecurityStampValidationInterval = TimeSpan.Zero;
}
Обновление: для ASP.NET Core Identity 2.x, 3.x, 5.x
services.Configure<SecurityStampValidatorOptions>(options =>
{
// enables immediate logout, after updating the user's stat.
options.ValidationInterval = TimeSpan.Zero;
});
severely impact
просто one
запрос к БД. Если эта БД не может с этим справиться, измените ее!
- person VahidN; 13.02.2018
one
запрос - подсчет 5 дополнительных запросов в ASP.NET Core 2.X (AspNetUser, AspNetUserClaims, AspNetUserRoles, AspNetRoles, AspNetRoleClaims)
- person Ole K; 22.02.2018
Я думаю, вы можете найти некоторые функции отзыва, которые заставляют пользователя принудительно выходить из системы. В настоящее время это нелегко реализовать в виде соединения без сохранения состояния и аутентификации на основе токенов (или, можно сказать, на основе утверждений).
Отмененный пользователь должен получить доступ к конечной точке проверки токена, чтобы проверить, действителен ли токен. До тех пор (1) пользователь может отображаться как вошедший в систему или (2) нам нужно реализовать клиент (приложение или веб) для доступа к конечной точке токена очень часто до истечения срока действия токена или отзыв.
Вход / выход привязан к области идентификации пользователя с авторизацией по токену, поэтому жизнеспособным решением является аннулирование токена.
IUserSecurityStampStore.SetSecurityStampAsync(newValue)
?
- person Mariusz Jamro; 13.01.2017