2013-12-20 28 views
3

我想註銷用戶時,會話對象不,我認爲下面的代碼存在:如何在asp.net MVC 5中註銷用戶?

FormsAuthentication.SignOut(); 

但是,這並不工作 - 用戶已經通過身份驗證。

我見過的默認註銷等Controller操作使用此代碼signout用戶:

AuthenticationManager.SignOut(); 

但我不能在我看來,使用此代碼。

那麼如何在我的視圖中註銷用戶?或者當這是不可能的我怎麼能在控制器中做到這一點?

感謝您的幫助:)

+0

只需調用默認的LogOff操作(或副本)即可。這可以是javasript調用或實際的「a」鏈接。 – Jared

+0

當我在我的控制器「RedirectToAction(」LogOff「,」Account「)中調用此函數時;」所以我的用戶已經通過了身份驗證。 –

+1

您一直在說...用戶已經通過身份驗證。那是什麼意思?當然,他們是,你想「認證」他們。另外,在用戶發出新請求之前,註銷將不會被您的代碼「注意到」。意思是,如果你調用'AuthenticationManager.SignOut();'並且在下一行有'User.Identity.IsAuthenticated;' - 它仍然顯示爲真。 – Tommy

回答

3

你會在控制器中像LogOut()一個單獨的行動來這樣做,例如。完成註銷後,將用戶重定向到首頁(例如)。

然後,您只需鏈接到該操作即可。

該視圖不是容納任何東西,而是純粹簡單的表示邏輯的地方,如if語句或for循環。控制器應該注意應用程序的行爲,如註銷。

+0

我曾經想過這樣的事情,但是當這個函數「FormsAuthentication.SignOut()」不工作並且使用這個函數「AuthenticationManager.SignOut()」的時候我該怎麼做?我得到一個錯誤,AuthenticationManager沒有包含一個實現這個功能? –