• .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]

  • 相关阅读:
    实验3-4 统计字符 (15分)
    实验3-5 查询水果价格 (15分)
    实验3-6 计算个人所得税 (10分)
    实验3-7 统计学生成绩 (15分)
    实验3-8 输出三角形面积和周长 (15分)
    实验3-9 三天打鱼两天晒网 (15分)
    实验3-11 计算油费 (15分)
    由一个商城项目得到的感悟
    ActiveMQ(三)——理解和掌握JMS(1)
    ActiveMQ(二)——ActiveMQ的安装和基本使用
  • 原文地址:https://www.cnblogs.com/SmilePastaLi/p/11277881.html
Copyright © 2020-2023  润新知