2010-04-01 68 views
0

我使用asp:Login控件,用戶可以正常登錄,但在Login控件的LoggedIn事件中檢查用戶Profile信息時,Profile對象中的所有字段都是空的。 此外,User.Identity.IsAuthenticated始終返回false。用戶配置文件對象爲空,即使用戶已正確登錄?

但是,所有這些問題在導航到另一頁時解決。

爲什麼User.Identity.IsAuthenticated返回false,即使用戶已正確登錄? 而且,有什麼辦法可以在登錄控件的LoggedIn事件中獲取用戶的個人資料信息?

回答

0

在LoggedIn事件中,用戶和配置文件身份尚未更新。嘗試,而不是這樣的:

要訪問用戶:

MembershipUser aUser = Membership.GetUser(Login1.UserName); 
// work with aUser ... 

訪問配置文件:(Login1是你的登錄控制)

ProfileCommon aProfile = Profile.GetProfile(Login1.UserName); 
// work with the member fields in aProfile ... 

+0

我想這一點,Profile.GetProfile(Login1.UserName);但它不起作用。 – Ahmed 2010-04-01 17:44:31

+0

@艾哈邁德:什麼不行?你的意思是'Profile.GetProfile(Login1.UserName)'返回的所有成員字段仍然是空的? – Slauma 2010-04-01 18:09:15

+0

現在工作,抱歉給您帶來不便。 – Ahmed 2010-04-01 18:15:26

1

登錄,表格後必須重定向到下一頁以填充用戶主體信息(頁面/上下文的用戶屬性)。所以這就是爲什麼提到使用控件的用戶名。

你能等到重定向後嗎?你需要直接訪問嗎? Login1.UserName應該工作;在那裏放置一個調試器並確保該值已填充。

您也可以嘗試:HttpContext.Current.Profile.GetProfile(...)

相關問題