MVC6 (ASP.NET5) 认证 (Asp.net identity) cookie模式 自定义认证

时间:2023-03-10 07:54:20
MVC6 (ASP.NET5) 认证 (Asp.net identity) cookie模式 自定义认证

1、Startup类的Configure方法中,

app.UseIdentity();

改为

app.UseCookieAuthentication(options =>
{
options.AuthenticationScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
options.CookieHttpOnly = true;
});

2、登录的Action方法中:

             List<Claim> claims = new List<Claim>();
claims.Add(new Claim("Name", "TestName", ClaimValueTypes.String));
claims.Add(new Claim(ClaimTypes.Name, "TestName", ClaimValueTypes.String));
ClaimsIdentity identity = new ClaimsIdentity(claims, "AuthenticationType", "Name", ClaimTypes.Role);
ClaimsPrincipal principal = new ClaimsPrincipal(identity);
HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);
return View();