防止已删除的用户浏览网站?

问题描述 投票:0回答:1

当我删除用户时,他们仍然可以浏览该网站。

是否可以清除他们的会话数据,以便他们重定向到登录页面?

问题的一部分是删除帐户的用户可能是其他用户。所以清除cookie不会影响已删除的用户。

c# asp.net-core .net-core asp.net-identity razor-pages
1个回答
0
投票

您始终可以在执行的每个操作中检查当前经过身份验证的用户,以确保该用户确实存在于

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.