当我删除用户时,他们仍然可以浏览该网站。
是否可以清除他们的会话数据,以便他们重定向到登录页面?
问题的一部分是删除帐户的用户可能是其他用户。所以清除cookie不会影响已删除的用户。
您始终可以在执行的每个操作中检查当前经过身份验证的用户,以确保该用户确实存在于
UserManager
内。您仍然希望使 cookie/会话无效,具体取决于您对它们处于活动状态的容忍度。我会将它们的过期时间设置为某个较小的间隔,以防止它们被重复使用。
public override async Task OnActionExecutingAsync(ActionExecutingContext context)
{
var user = context.HttpContext.User;
// Get the userId by the name or some other method
var userId = user.FindFirstValue(ClaimTypes.NameIdentifier);
var dbUser = await _userManager.FindByIdAsync(userId);
if (dbUser == null)
{
context.Result = RedirectToAction("Login", "Home");
}
await base.OnActionExecutingAsync(context);
}