Implementing Login Functionality with ASP.NET Core Identity

Updated on

May 07, 2024

Learn to implement login in ASP.NET Core Identity by creating views and controllers for user authentication.



Now that ASP.NET Core Identity is setup, let's implement login functionality. This involves creating views and controllers for user authentication.

Creating the Login View and Controller:

Create the Login View:

Add a new Razor view under the directory named .Views/AccountLogin.cshtml

Add Account Controller:

Create an to manage login operations.AccountController

public class AccountController : Controller
{
    private readonly SignInManager<IdentityUser> _signInManager;

    public AccountController(SignInManager<IdentityUser> signInManager)
    {
        _signInManager = signInManager;
    }

    [HttpGet]
    public IActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public async Task<IActionResult> Login(string email, string password, bool rememberMe)
    {
        var result = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure: false);
        if (result.Succeeded)
        {
            return RedirectToAction(nameof(Index), "Home");
        }
        else
        {
            ModelState.AddModelError("", "Invalid login attempt.");
            return View();
        }
    }
}

This controller handles user login requests, authenticating credentials against data stored in Identity. Learn more about managing authorizations and roles with ASP.NET Core Identity in the next part of our series here.