Question

I use asp:Login control, user can login properly, but while checking user Profile information within LoggedIn event of Login control, all of the fields in the Profile objects are empty. Also, User.Identity.IsAuthenticated always returns false.

But, all of these issue solved while navigating to another page.

Why User.Identity.IsAuthenticated returns false, even user logged-in properly? And, is there any way to get user's profile information within LoggedIn event of Login control?

Was it helpful?

Solution

In the LoggedIn event the User and Profile identities are not yet updated. Try instead this:

To access the user:

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

To access the profile:

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

(Login1 is your Login control.)

OTHER TIPS

After logging in, the form must redirect to the next page to populate the User principal information (User property of page/context). So that is why it was mentioned to use the UserName of the control.

Can you wait until after the redirect? Do you need direct access? Login1.UserName should work; put a debugger there and make sure the value is populated.

You could also try: HttpContext.Current.Profile.GetProfile( ... )

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top