Я являюсь usigin Asp.net Identity для аутентификации пользователя, и я пытаюсь заблокировать любого пользователя с административной стороны. Но когда я блокирую любого пользователя, который находится в сети, он не вышел из системы. Я прочитал много комментариев о моей проблеме, но все они не работали. Я попробовал UserManager.UpdateSecurityStamp выйти из системы, но это не сработало. Как я могу выйти из системы сразу после блокировки?Asp.net Identity logout другой пользователь
public ActionResult LockUser(string userId)
{
_userManager.SetLockoutEnabled(userId, true);
_userManager.SetLockoutEndDate(userId,DateTime.Today.AddYears(999));
var user = _userManager.FindById(userId);
_userManager.UpdateSecurityStamp(userId);
return RedirectToAction("UserDetail",new { userId });
}
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/UnAuthorize/Index"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<AppUserManager, User>(
validateInterval: TimeSpan.FromMinutes(1),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
Это должно на самом деле это сделать. Но это дает минутное окно для того, чтобы пользователь все еще использовал систему после того, как вы назвали марку безопасности обновления. Попробуйте изменить 'validateInterval' на 0 в' SecurityStampValidator' и посмотреть, что произойдет – trailmax
Я попробовал validateInterval = 0, но он не работал снова. Я использую autofac, и я задаюсь вопросом, произошла ли эта проблема из-за этого –