2010-04-01 73 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(...)

相关问题