.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=Home}/{action=Index}/{id?}");
            });

 

登录:

 [HttpPost]
        public async Task<IActionResult> Login(LoginModel dto)
        {
            //登陆授权
            if (dto.UserName == "admin" && dto.Password == "123456")
            {
                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");
        }

 

特性:

需要认证:[Authorize] 

忽略认证:[AllowAnonymous]

转载于:https://www.cnblogs.com/SmilePastaLi/p/11277881.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值