46-Identity MVC:登录逻辑实现

1- Login.cshtml

<h3>Login</h3>
@model MvcCookieAuthSample.ViewModel.LoginViewModel
<div class="row">
    <div class="col-md-4">
        <form method="post" asp-controller="Account" asp-action="Login">

            <hr />

            <div class="form-group">
                <label asp-for="Email"></label>
                <input asp-for="Email" class="form-control" />
            </div>

            <div class="form-group">
                <label asp-for="Password"></label>
                <input asp-for="Password" class="form-control" />
            </div>

            <button type="submit" class="btn btn-default">Login</button>
        </form>
    </div>
</div>

2-登陆具体方法

 [HttpPost]
        public async Task<IActionResult> Login(ViewModel.LoginViewModel loginModel)
        {
          var findUser =await  _userManager.FindByEmailAsync(loginModel.Email);
            if (findUser == null)
            {
                return BadRequest();
            }
            await _signInManager.SignInAsync(findUser, true);
            return RedirectToAction("Index", "Admin");
        }

        public IActionResult LoginOut()
        {
            _signInManager.SignOutAsync();
            return RedirectToAction("Index", "Home");
        }

3-在修改公用模板

  @if (User.Identity.IsAuthenticated)
                    {      
                        <li> <a title="Welcome" asp-controller="Admin" asp-action="Index">  @User.Identity.Name</a> </li>
                        <li><a  asp-controller="Account" asp-action="LoginOut">退出</a></li>      
                     
                    }
                    else
                    {
                        <li><a asp-area="" asp-controller="Account" asp-action="Register">注册</a></li>
                        <li><a asp-area="" asp-controller="Account" asp-action="Login">登陆</a></li>
                    }
原文地址:https://www.cnblogs.com/qinzb/p/9410902.html