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> }