1

我做了一個自定義的成員資格提供程序,並覆蓋了ValidateUser方法,但現在我感到困惑。我沒有使用任何登錄控件,只是在主頁上有一個站點範圍的登錄名(用戶名和密碼框)。在validateUser()之後爲表單身份驗證調用什麼?

問題:

  1. 我需要調用的ValidateUser()方法自己?如果是這樣, 接下來的步驟是什麼?我是否需要創建auth cookie才能完成登錄?

  2. 如果用戶通過身份驗證,我需要返回一些自定義用戶數據。 調用GetUser並檢查null或只是調用ValidateUser,然後 獲取用戶對象是否更好?

    1. 我應該在哪裏以及如何爲用戶存儲自定義數據?它是否存儲在身份對象中?我應該將它存儲在MembershipUser對象中嗎?

回答

2

是的,您驗證證明是通過如果上面的調用返回做一個調用,如

Membership.ValidateUser(TextBoxUsername.Text, TextBoxPassword.Text) 

正確true那麼你需要設置身份驗證Cookie像這樣:

FormsAuthentication.SetAuthCookie(TextBoxUsername.Text, CheckboxRememberMe.Checked); 

在那裏我使用了「記住我」複選框,如果您想下次自動登錄。

要獲得用戶的詳細信息您可以撥打

Membership.FindUsersByName(TextBoxUsername.Text) 

可以存儲用戶信息的最方便的地方是會話。

你沒有問,但同樣重要的是一個註銷頁面。撤消登錄步驟所需的功能爲:

FormsAuthentication.SignOut(); 
Session.Abandon(); 
Response.Redirect("~/login.aspx", false);//or homepage, or any other page 
+0

太棒了!非常感謝你! – chobo 2012-03-20 20:01:23

相關問題