GetUser.ProviderUserKey gives me System.NullReferenceException

C

Cirene

Using asp.net membership. My login.aspx page goes to the loginredirect.aspx
page after the user logs in.

For some reason "Membership.GetUser.ProviderUserKey.ToString" gives me this
error:
System.NullReferenceException: Object reference not set to an instance of an
object. at loginredirect.Page_Load(Object sender, EventArgs e)

Any reason why? I should be logged in fine.

Is there another way in which I should get the current users UserId?
 
T

Tanzim Saqib

Membership.GetUser() is definitely null in your case. Meaning that the user
has not actually been logged in. Can't say much since unsure about your
particular scenario.

Tanzim Saqib
W: http://www.TanzimSaqib.com
 
E

Eliyahu Goldin

The authentication principal won't get set until the next request to the
web-server. That's why GetUser returns. But you can use the "UserName"
property of the Login control
within the LoggedIn event to identify the user. With this name, you can use
Membership.GetUser(userName).


--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
 
M

Marc

Cirene said:
Using asp.net membership. My login.aspx page goes to the
loginredirect.aspx page after the user logs in.

For some reason "Membership.GetUser.ProviderUserKey.ToString" gives me
this error:
System.NullReferenceException: Object reference not set to an instance of
an object. at loginredirect.Page_Load(Object sender, EventArgs e)

Any reason why? I should be logged in fine.

Is there another way in which I should get the current users UserId?

I recommend you surround the code with some checks first, like this:

If User.Identity.IsAuthenticated Then Begin
myString := Membership.GetUser().ProviderUserKey.ToString
End Else Begin
Response.Write('User is not logged in.');
Response.End;
End;

{yes, that's Delphi ;-) }

Step through that code in the debugger to find out if it goes down the
"IsAuthenticated " path. If not then you know what the problem is.

Marc
 
T

Tanzim Saqib

I'd prefer the following to make a safer access to ProviderUserKey property:

var user = Membership.GetUser();

if(user == null)
{
// not authenticated, please log in
}
else
{
// play with the currently logged in user.
}

- Tanzim Saqib
http://www.TanzimSaqib.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,045
Latest member
DRCM

Latest Threads

Top