2010-09-21 27 views
0

我在ASP.NET MVC項目中使用表單身份驗證。表單身份驗證IsOnline方法不檢索正確的狀態

當退出當前用戶點擊鏈接代碼執行,做按順序一個動作:

System.Web.Security.FormsAuthentication.SignOut(); 
Session.Abandon(); 

第二個電話,因爲我沒有使用會話都無法正常需要。

問題是,如果我使用管理員帳戶登錄,我可以看到用戶仍然登錄。

我在哪裏做錯了?

感謝您的幫助!

編輯

新增登錄代碼只是爲了完成

if (ModelState.IsValid) { 
    if (MembershipService.ValidateUser(model.UserName, model.Password)) { 
     System.Web.Security.FormsAuthentication.SignIn(model.UserName, model.RememberMe); 
     if (!String.IsNullOrEmpty(returnUrl)) { 
      return Redirect(returnUrl); 
     } 
     else { 
      return RedirectToAction("Index", "Home"); 
     } 
    } 
    else { 
     ModelState.AddModelError("", "Error...."); 
    } 
} 

回答

0

確定。我發現了這個問題。

我所用,以顯示當前loggein用戶以下調用

用戶的MembershipUser = Membership.GetUser(USERKEY,真) 如果(user.IsOnline){ ... }

並且我意識到GetUser方法的第二個參數將用戶狀態設置爲聯機並更新數據存儲中的LastActivity字段。 我不知道爲什麼這是這樣工作,但就是這樣...