User.Identity.GetUserId() always returns null in controller action

Antony Brahin

I needed to use current logged in user id in controller. It always returns null. I am already logged in. Here's my code.

if (string.IsNullOrEmpty(userId)) userId = User.Identity.GetUserId();

I tried adding the reference

 using Microsoft.AspNet.Identity;

I also tried adding a claim

public const string UserId = "http://schemas.xmlsoap.org/ws/2014/03/mystuff/claims/UserId";
userIdentity.AddClaim(new Claim(CustomClaimTypes.UserId, Id));

When I try to retrieve the claim, it gives null as well.

(identity as ClaimsIdentity).FirstOrNull(CustomClaimTypes.UserId);

Any help would be appreciated.

Additional Info requested in comments:

It's the normal login provided by aspnetuser.

        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }

Request.IsAuthenticated returns true.

Claims added here.

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        userIdentity.AddClaim(new Claim(CustomClaimTypes.UserId, Id));

        return userIdentity;
    }

Cookies

Antony Brahin

Here is the answer, I managed to get it work.

I just moved the User.Identity.GetUserId(); to a helper class method.

I just want to reiterate, the request is not the login request. Its a separate request after the login.

Thank you guys for your time.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

User.Identity.GetUserId() returns null

User.Identity.GetUserId() returns null after successful login

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

View returns null to controller action

Function User.getUserId() in Cloud endpoint api returns null for a user object that is not null

What is the burden of User.Identity.GetUserId()?

Identity 2.0 User Identity is null in MVC 5 controller initializer

My homepage controller action does not recognize User.Identity.Name

Post params from client ignored in Controller's Action (always null)

Does UserManager.FindByIdAsync(User.Identity.GetUserId()) Cache?

How does Identity.GetUserId() finds the user Id?

How to access User.Identity.GetUserId() in Class library

How do you use User.Identity.GetUserId();

User.IsInRole() always returns false only in controller

List always returns null value when sent from controller to index

MVC Core @User.Identity.Name in razor returns null

User.GetUserId() fails inside controller's constructor

ASP.NET MVC5 Identity issue with User.Identity.GetUserId() during login process

Parameter in controller is always null

JavaFX controller is always null

.NET Core Web API HttpContext.User.Claims and HttpContext.User.Identity are always null in Controllers

User.Identity.IsAuthenticated AND _signInManager.IsSignedIn(User) return always null / fasle IN MVC CORE 6 2022

getIntent() always returns null

Ehcache always returns null

Lambda always returns null

FindByEmailAsync() returns null always

Nsdate always returns null

GetClipboardData always returns NULL

Session always returns null

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive