2010-03-16 88 views
0

我創建了一個已經是存儲在現有的數據庫表的用戶一個Web應用程序自定義的成員提供。我使用了教程中的一些代碼來幫助啓動我的提供程序,但是我對於如何與實際登錄過程進行交互有點遺憾。定製ASP.Net成員和登錄控制

我的定義提供具有的ValidateUser()的覆蓋方法,並在那一刻我只是返回true那裏。但我想創建一個當前用戶對象來存儲在會話範圍內。這個對象將只存儲關於用戶的一些細節。

我想另一個選擇是使用ASP.Net配置文件提供程序,但我不清楚在哪裏掛鉤登錄過程中運行一些代碼,可以創建此用戶對象或填充配置文件信息的當前用戶。

回答

0

正如約翰說,不要讓你的供應商代碼存儲在會話的用戶信息。相反,你可以使用一個登錄控件(here你有一些關於它的更多詳細信息),它會使用您的供應商,如果一切都配置正確,如果登錄成功(在你的情況下,它會因爲你返回true )你可以在OnLoggedIn事件處理程序的用戶,通過調用提供的方法的getUser,並存儲在的MembershipUser回來了。

你的代碼可能看起來類似這樣:

protected void LoginCtrl_LoggedIn(object sender, EventArgs e) 
{ 
    var user = Membership.GetUser(LoginCtrl.UserName, true); 
    Session["CurrentUser"] = user; 
} 
+0

我同意你的關注點分離,我不打算把管理中的成員資格提供用戶狀態代碼,而是尋找一些方法掛鉤到成功的身份驗證並在另一個類中運行一些代碼。你的回答非常有幫助,正是我所期待的。 – JBeckton 2010-03-16 15:42:43

0

使用的「關注點分離」校長,您的會員供應商不應該在會話中存儲任何用戶信息。