2022-01-18

asp.net core 支持多种身份认证方式

先贴认证授权官方文档   
认证:又叫身份验证,由用户提供凭据,然后将其与存储在操作系统、数据库、应用或资源中的凭据进行比较。 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作。

授权:判断允许用户执行的操作的过程。

在需要身份验证的web服务中,经常存在一个网站需要满足多种身份验证的需求,asp.net core 框架提供的认证授权功能已经支持这种操作;

日常可能有两种情况:

  1. 不同的认证token 访问的接口不同,比如后台管理的接口和前台用户的接口放在一个web 项目中,分别提供不同路由;

  2. 不同的认证token 访问的接口相同,比如前台用户认证有多种认证方式,都能访问相同路由;

准备基础代码:

这里用两个JWT认证模拟两个不同的认证方案     AuthSettings.AdminScheme 、    AuthSettings.UserScheme

builder.Services.AddAuthentication(AuthSettings.AdminScheme)   .AddJwtBearer(AuthSettings.AdminScheme, options =>   {    options.TokenValidationParameters = new TokenValidationParameters    {     ValidateIssuer = false,     ValidateAudience = false,     ValidateLifetime = false,     ValidateIssuerSigningKey = true,     ValidIssuer = AuthSettings.AdminIssuer,     IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AuthSettings.AdminSecret))    };   })   .AddJwtBearer(AuthSettings.UserScheme, options =>   {    options.TokenValidationParameters = new TokenValidationParameters    {     ValidateIssuer = false,     ValidateAudience = false,     ValidateLifetime = false,     ValidateIssuerSigningKey = true,     ValidIssuer = AuthSettings.UserIssuer,     IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AuthSettings.UserSecret))    };   });


app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();

 

1. 不同的认证token 访问的接口不同

 对于情况1,我们一般直接在  options.ForwardDefaultSelector 写上获取认证方案的逻辑就能实现动态切换认证方案,你可以根据路由地址,header 参数等自定义你想要执行的认证方案

builder.Services.AddAuthentication(AuthSettings.AdminScheme)   .AddJwtBearer(AuthSettings.AdminScheme, options =>   {//动态转发方案    options.ForwardDefaultSelector = content =>    {     return content.Request.Path.Value!.Contains(AuthSettings.UserUrlBase) ? AuthSettings.UserScheme : null;    };    options.TokenValidationParameters = ne.............

原文转载:http://www.shaoqun.com/a/1450743.html


上海之巅观光厅怎么样?好玩吗:http://www.30bags.com/a/662396.html
2021深圳中秋节景点预约盘点:http://www.30bags.com/a/663387.html
2021深圳香蜜公园国庆活动详情:http://www.30bags.com/a/722395.html
中信保:https://www.ikjzd.com/articles/142430
网络星期一:https://www.ikjzd.com/w/80
costco.com:https://www.ikjzd.com/w/1680
邮件回复注意事项And节日营销技巧!:http://www.kjdsnews.com/a/761427.html
独立站选Ueeshop,Ueeshop B2C版本又该如何选择?:https://m.ikjzd.com/articles/153718
客户被繁琐的流程劝退?Ueeshop询盘购物车帮你挽回!:https://m.ikjzd.com/articles/153714

No comments:

Post a Comment