2010-11-18 52 views
2

我是管理员,我需要删除用户。ASP.NET成员资格:安全用户删除

如果用户在我删除它的时刻进行了身份验证,那么强制删除的用户在下一个请求中注销的最佳策略是什么?

我必须在Application_AuthenticateRequest事件中处理此操作吗?

换句话说,可以在AuthenticateRequest事件中验证用户是否仍然存在,如果不存在,则删除所有Cookie并重定向到登录页面?

回答

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"); 
     } 
    } 
} 

当请求被认证时,验证用户仍然在存在系统,如果不是所有的cookies都会被删除,请求将被重定向到登录页面。

1

如果你删除它们,那么我假设他们的下一个请求很可能会出错。

即使他们具有身份验证cookie,任何检查数据库与其用户ID的页面显然都会引发异常。

你很可能只是禁用用户而不必删除它们。

+0

好的。我一定要禁用用户。但如何管理“删除用户场景”?可以在Application_AuthenticatedRequest事件中验证用户是否已经存在,是否删除所有Cookie并重定向到登录? – 2010-11-18 19:25:29

+0

管理这种情况的最佳策略是什么? – 2010-11-18 19:28:58

+0

是的,如果应用程序在使用时被删除,应用程序可能会误报。在这种情况下,看到错误或登录页面有什么区别;他们不再是一个用户。 – Greg 2010-11-19 21:04:15

相关问题