2010-08-24 147 views
0

如果我打電話.NET窗體身份驗證和CurrentContext.User

FormsAuthentication.SignOut(); 

與登錄的用戶(使用createPersistentCookie設置爲false登錄)我應該期待

HttpContext.Current.User.Identity.IsAuthenticated 

是假的?

這不是,並且Identity.Name仍然有價值。這是正確的嗎?

如果這是正常行爲,我需要做些什麼來移除登錄用戶的所有蹤跡?

編輯:有沒有做一些必要的事情而不做Response.Redirect

回答

2

FormsAuthentication.SignOut方法從瀏覽器中刪除表單認證票據,因此您需要先重定向然後查詢HttpContext.Current.User.Identity.IsAuthenticated屬性。

+0

被重定向的唯一選擇? – 2010-08-24 15:25:14

+0

那麼,您自己在調用'FormsAuthentication.SignOut'方法時,您已經知道當前請求中的用戶已被註銷。就後續請求而言,Cookie將被清除,並且「HttpContext.Current.User.Identity.IsAuthenticated」屬性將被反映。 – 2010-08-24 15:28:31

1

呼叫

Response.Redirect(FormsAuthentication.LoginUrl);