.NET Core 2.0 Cookie中间件 权限验证

时间:2022-03-19 03:55:35
1:在ConfigureServices添加Cookie中间件,使用自定义Scheme
services.AddAuthentication(options
=> {
options.DefaultChallengeScheme
=“test”;
options.DefaultSignInScheme
= "test";
options.DefaultAuthenticateScheme
= "test";
})
.AddCookie("test", m
=>
{
m.LoginPath
= new PathString("/Account/Login");
m.AccessDeniedPath
= new PathString("/Account/Denied");
m.LogoutPath
= new PathString("/Account/Logout");
m.Cookie.Path
= "/";
});
2:在Configure使用Cookie中间件

app.UseAuthentication();
3、引入命名空间

using Microsoft.AspNetCore.Authentication;
4、使用方式
//登录
await HttpContext.SignInAsync("test", userPrincipal,
new AuthenticationProperties
{
ExpiresUtc
= DateTime.UtcNow.AddHours(12),
IsPersistent
= true,
AllowRefresh
= false
});

//退出
await HttpContext.SignOutAsync("test"); 
5、AuthorizeAsync现在返回结果为AuthorizationResult

使用方式
1
2
3
4
5
var result = await HttpContext.AuthenticateAsync("xxxx");
if (result.Succeeded)
{
......
}