2010-11-18 26 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