views:

75

answers:

2

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?

A: 

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.)

Slauma
I tried this, Profile.GetProfile(Login1.UserName); but it doesn't work.
Ahmed
@Ahmed: What does not work? Do you mean that all member fields of the return of `Profile.GetProfile(Login1.UserName)` are still empty?
Slauma
Working now, sorry for inconvenience.
Ahmed
A: 

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( ... )

Brian