Search code examples
asp.netasp.net-coreasp.net-identity-3

How to get current UserId in Identity 3.0? User.GetUserId returns null


I need to get ID of user that made some request. In previous versions of Identity I could do it like this:

User.Identity.GetUserId();

But it seems it isn't available anymore.

There is also something like:

User.GetUserId();

But it always returns null, even if User.Identity.IsAuthenticated in true and User.Identity.Name is set correctly.

What should I use to do it?

EDIT: My authenticaton logic is based on [default Visual Studio 2015 template], I hadn't changed much so far in identity, so if you want to check how is it done, you can simply see it on github link I pasted.


Solution

  • Following our discussion, it seems your user identity does not contain the correct claim used by User.GetUserId().

    Here is how you can manually set the NameIdentifier claim:

    // ClaimsIdentity identity = new ClaimsIdentity...
    
    identity.AddClaim(ClaimTypes.NameIdentifier, user.Id);