一、注册服务。
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的扩展方法进行登陆。