2011-09-16 22 views
0

我在母版頁上擁有登錄狀態控件。如果用戶沒有簽名,它會顯示如何判斷用戶已登錄或IsAuthenticated的asp.net成員身份登錄狀態控制

「登錄」

否則顯示

「用戶名 - 退出」

註冊頁面有兩種觀點。一個是用戶註冊的地方,另一個是用戶剛註冊的地方(如確認頁面)。

註冊點擊是一個服務器端點擊,並通過常規頁面流程去到事件處理程序。

現在的問題是顯示確認視圖,但登錄狀態仍顯示「登錄」。

此時,我的客戶希望看到「退出」。即使FormsAuthentication.SetCookie已被調用,但對頁面流事件中的任何時刻調用IsAuthenticated總是導致false。

有沒有辦法告訴用戶登錄並重新登錄的登錄狀態?有沒有辦法擴展控制權來進行這樣的事件?

+0

您是否使用User.Identity.IsAuthenticated? – kd7

+0

是的。當我在調試時檢查它是錯誤的。我在預渲染期間檢查了頁面和控件。另外,LoginStatus會自動檢查這一點。 – Qudoos

+0

您的登錄狀態測試是否在預渲染中進行了身份驗證? – Timbo

回答

0

1.

FormsAuthentication.SetAuthCookie(user.UID, true); // IsAuthenticated變爲真

2.

FormsAuthentication.SignOut(); // IsAuthenticated變爲假

3.

(Web.config中)

<authentication mode="Forms">
<forms loginUrl="~/Acount/Login" timeout="3000"></forms>

只有此頁面可以獲取用戶登錄信息。

</authentication>

<authorization>

<deny users ="?" />

//這意味着任何頁面,如果沒有登錄信息,它會自動進入到loginUrl頁面。 </authorization>