.net core mvc 简易登录
Posted smilepastali
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core mvc 简易登录相关的知识,希望对你有一定的参考价值。
Startup.cs文件:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => options.LoginPath = "/Home/Login"; options.ExpireTimeSpan = TimeSpan.FromDays(2); );
//注意app.UseAuthentication方法一定要放在下面的app.UseMvc方法前面,否者后面就算调用HttpContext.SignInAsync进行用户登录后,使用 //HttpContext.User还是会显示用户没有登录,并且HttpContext.User.Claims读取不到登录用户的任何信息。 //这说明Asp.Net OWIN框架中MiddleWare的调用顺序会对系统功能产生很大的影响,各个MiddleWare的调用顺序一定不能反 app.UseAuthentication(); app.UseMvc(routes => routes.MapRoute( name: "default", template: "controller=Pages/action=Applet/id?"); );
登录:
[HttpPost] public async Task<IActionResult> Login(LoginModel dto) //登陆授权 if (dto.UserName == "admin" && dto.Password == "siia") var claims = new List<Claim>() new Claim(ClaimTypes.Name,dto.UserName), new Claim(ClaimTypes.Role,"admin") ; var claimIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimIdentity)); //验证是否授权成功 //if (User.Identity.IsAuthenticated) // // return RedirectToPage("Index"); // return RedirectToAction("Applet", "Pages"); else ViewBag.msg = "账号密码错误"; return View(); public async Task<IActionResult> Logout() //TODO:注销处理 await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); return RedirectToAction("Login");
以上是关于.net core mvc 简易登录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET CORE 5.0 MVC 中将登录设置为默认路由
ASP.NET Core 3.1 MVC JWT 登录返回 401
已有MVC项目(非Net Core)如何快速接入Cas单点登录