Home > Back-end >  User.Identity.IsAuthenticated AND _signInManager.IsSignedIn(User) return always null / fasle IN MVC
User.Identity.IsAuthenticated AND _signInManager.IsSignedIn(User) return always null / fasle IN MVC

Time:01-04

I have a new asp.net MVC core 6 application .try to authenticate users ( not by using Identity scaffolding ) .. however the the SignInmanger is always return False

Login function

enter image description here

programe.cs

enter image description here

Full code snippet for login :

[HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Login(LoginVM loginvm)
    { // this wil return view model


        if (!ModelState.IsValid)
        {
            return View(loginvm);
        }


        var user = await _userManager.FindByEmailAsync(loginvm.Username);

        if (user != null)
        {
            // if we have user let us check the password

            var checkpsssword = await _userManager.CheckPasswordAsync(user, loginvm.Password);

            if (checkpsssword)
            {
                var letUserLoginIn = await _signInManager.PasswordSignInAsync(user, loginvm.Password, false, false);

                if (letUserLoginIn.Succeeded)
                {
                    var tempo = User.Identity.IsAuthenticated;

                    var isok = _signInManager.IsSignedIn(User);
                    ViewBag.tempo=tempo;
                    ViewBag.isok = isok;

                  return  RedirectToAction("index", "Movie");
                }
                
                ModelState.AddModelError("Error","can login innnnn");
                TempData["Error"] = "Password is not correct! !";
                return View(loginvm);
            }
            else
            {
                // password wrong
                TempData["Error"] = "Password is not correct! !";
            }

        }

        TempData["Error"] = "no user found ya mozznoz!";
        return View(loginvm);//STRONGLY TYPED VIEW 


    }

CodePudding user response:

One part @Kevin have mentioned above, and another part was the missing of authentication mechanism register.

It should be something like builder.Services.AddAuthentication(opts => opts.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();

AddAuthentication part add all the necessary middlewares and config to setup authentication process. Here, we specify DefaultScheme as CookieAuthenticationDefaults.AuthenticationScheme

AddCookie tell asp.net Core that we want to store the login information in cookie, therefore, a response that tell client to save a cookie with pre-defined information was sent(and the name for that authentication mechanism of choice was default to CookieAuthenticationDefaults.AuthenticationScheme).

For every subsequent requests, the cookie was included then server know, we already logged in

  •  Tags:  
  • Related