Asp.net core 2.2 Cookie验证

一、注册服务。

services.AddAuthentication(option =>
            {
                option.DefaultScheme = "Cookie";
                option.DefaultChallengeScheme = "Cookie";
                option.DefaultAuthenticateScheme = "Cookie";
                option.DefaultForbidScheme = "Cookie";
                option.DefaultSignInScheme = "Cookie";
                option.DefaultSignOutScheme = "Cookie";
            }).AddCookie("Cookie",option=>
            {
                option.LoginPath = "/login";
                option.AccessDeniedPath = "/forbidden";
            });

二、登录

注意:需要using Microsoft.AspNetCore.Authentication; 才能使用 HttpContext.SignInAsync

var claims = new List<Claim> {
                new Claim("user","admin"),
                new Claim("role","1,2,3,4,5"),
                new Claim("id","1")
            };
            await HttpContext.SignInAsync(new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies")));

三、检查

这里就可以使用User

1、User.Identity.IsAuthenticated 是否登录

2、User.Identity.Name 用户名

3、User.Claims 其它登录时参数或其它,就可以从这里读取

---------其它-----

var claim = new Claim("name", "wallee");//我的众多信息中的一个信息单元,还有年龄、性别、家庭等等
            var identity = new ClaimsIdentity("身份证");//我的众多身份证件中的一个,还有驾驶证、准考证、会计证、计算机二级证等等
            identity.AddClaim(claim);//将上面那个信息片段添加到我的身份证里面
            var principal=new ClaimsPrincipal(identity);//将身份证作为我这个人的初始化参数,初始化一个ClaimsPrincipal就代表了一个主体。
            HttpContext.SignInAsync(principal);//最后,利用这个主体,调用HttpContext的扩展方法进行登陆。

猜你喜欢

转载自www.cnblogs.com/ccxcn/p/11363948.html