我是管理员,我需要删除用户。
如果用户在我删除它时进行了身份验证,那么强制已删除的用户在下次请求时注销的最佳策略是什么?
我必须在Application_AuthenticateRequest
事件中处理此操作吗?
换句话说,如果用户仍然存在,可以在AuthenticateRequest
事件中验证,如果没有,则删除所有cookie并重定向到登录页面?
答案 0 :(得分:2)
经过一些研究和评估,最后我找到了一个处理这种情况的策略,因此,在Global.asax中:
protected void Application_AuthenticateRequest()
{
var user = HttpContext.Current.User;
if (user != null)
{
if (Membership.GetUser(user.Identity.Name, true) == null)
{
CookieHelper.Clear();
Response.RedirectToRoute("Login");
}
}
}
当请求经过身份验证后,我们会验证用户是否仍然存在于系统中,否则将删除所有Cookie并将请求重定向到登录页面。
答案 1 :(得分:1)
如果你删除它们,那么我假设他们的下一个请求很可能会错误。
即使他们拥有身份验证cookie,任何根据其UserID检查数据库的页面显然都会引发异常。
您很可能只是禁用用户而不必删除它们。