学习ASP.NET Core的身份认证(基于JwtBearer的身份认证4)

devtools/2024/12/28 8:36:44/

  本文学习并记录builder.Services.AddAuthentication().AddJwtBearer函数中配置类的主要属性及用途。AddJwtBearer函数原型如下图所示,划红线的为常用形式,主要设置JwtBearerOptions类型的常用属性或事件。
在这里插入图片描述  JwtBearerOptions类中的属性虽多,但从参考文献的示例来看,大多没有直接设置,主要是对TokenValidationParameters属性设置,该属性与Token验证息息相关,除此之外,参考文献4中还设置了Events属性,该属性类型为JwtBearerEvents,可以处理Token验证时的各类事件,如下图所示:
在这里插入图片描述
  JwtBearerOptions.TokenValidationParameters的类型为TokenValidationParameters,其常用的属性如下表所示:

序号属性说明
1ClockSkew设置或获取时间验证时的时间漂移,默认为300秒,根据参考文献9中的解释,该属性用于处理生成Token和验证Token的服务器之间的可能的时间不同步问题,也即两个时间的误差在ClockSkew范围内即可认为是验证通过
2IssuerSigningKey类型为SecurityKey,保存签证Token签名时所需的密钥
3NameClaimTypestring类型,设置有效负载中的name声明的默认类型,也即保存姓名的键值对中的默认键值,一般都使用默认值
4PropertyBagIDictionary<string, object>,保存有效负载中自定义声明信息的键值对,以支持自定义声明信息的验证
5RequireExpirationTimebool类型,默认值为true,标志有效负载中是否要存在到期时间声明,也即有类型为exp的键值对
6RoleClaimTypestring类型,设置有效负载中的role声明的默认类型,也即保存角色的键值对中的默认键值,一般都使用默认值
7ValidAudiencestring类型,设置有效受众(Audience),以便需验证受众时与有效负载中的声明信息进行对比
8ValidAudiencesIEnumerable类型,保存有多个有效受众,验证受众时只要存在aud类型声明信息,且值在集合内即可通过验证
9ValidIssuerstring类型,设置有效发行者(Issuer),以便需验证发行者时与有效负载中的声明信息进行对比
10ValidIssuersEnumerable类型,保存有多个有效发行者,验证发行者时只要存在iss类型声明信息,且值在集合内即可通过验证
11ValidateIssuerbool类型,默认值为true,设置验证Token时是否验证有效负载中的发行者声明是否与验证程序中的一致
12ValidateAudiencebool类型,默认值为true,设置验证Token时是否验证有效负载中的受众声明是否与验证程序中的一致
13ValidateLifetimebool类型,默认值为true,设置验证Token的声明周期,也即是否超过Token中指定的过期时间+ClockSkew

  TokenValidationParameters中的其它属性大多是代理函数声明,用于在特定应用场景中替换微软JwtBearer中默认的处理函数。

参考文献:
[1]https://www.jianshu.com/p/a2804e72d296
[2]https://blog.csdn.net/sD7O95O/article/details/85043160
[3]https://www.cnblogs.com/qiongkangle/p/13347283.html
[4]https://www.cnblogs.com/xbhp/p/17401507.html
[5]https://www.cnblogs.com/superstar/p/16491428.html
[6]https://blog.csdn.net/weixin_44877917/article/details/140609294
[7]https://blog.csdn.net/qq_40287041/article/details/143368882
[8]https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.identitymodel.tokens.tokenvalidationparameters?view=msal-web-dotnet-latest
[9]https://blog.csdn.net/kan_kongzhizhen/article/details/138670376


http://www.ppmy.cn/devtools/146059.html

相关文章

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战

Text2SQL&#xff08;NL2sql&#xff09;对话数据库&#xff1a;设计、实现细节与挑战 前言 1.何为Text2SQL&#xff08;NL2sql&#xff09;2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展&#xff0c;人机交互的方式也在不断演…

探秘 Chrome 隐藏配置项:chrome://net-internals

Chrome浏览器中的chrome://net-internals/页面是一个强大的内置工具&#xff0c;提供了监视和调试网络请求与事件的详细功能。 一、chrome://net-internals/#events 地址&#xff1a;chrome://net-internals/#events 这个页面用于监视和调试网络请求和事件。通过它&#xff…

Flutter适配HarmonyOS实践

大家在知道纯血鸿蒙到来的时候一定很疑惑&#xff0c;使用跨平台语言的到底该怎么办&#xff0c;不管使用Flutter还是使用原生鸿蒙开发&#xff0c;都会考虑到一个成本问题&#xff0c;特别是一些无法支持鸿蒙开发团队&#xff0c;已经使用跨平台开发已经很成熟的公司或者团队。…

关于无线AP信道调整的优化(锐捷)

目录 一、信道优化的基本原则二、2.4G频段信道优化三、5G频段信道优化四、信道优化代码具体示例五、其他优化措施 一、信道优化的基本原则 信道优化旨在减少信道间的干扰&#xff0c;提高网络覆盖范围和信号质量。基本原则包括&#xff1a; 1. 选择合适的信道&#xff1a;根据…

华三M-LAG场景下,部分MAC内的流量泛洪导致端口流量打满

互联网各领域资料分享专区(不定期更新)&#xff1a; Sheet 问题描述 华三M-LAG场景下&#xff0c;部分MAC内的流量泛洪导致端口流量打满 解决方案 在交换机设备上创建1个无用的聚合口&#xff0c;该聚合口加入到mlag组&#xff0c;并将异常泛洪的MAC加入到该接口即可解决。&…

基于HAL库的stm32的can收发实验

十六、CAN 1.CAN简介 CAN协议&#xff0c;全称为Controller Area Network&#xff08;控制器局域网络&#xff09;&#xff0c;是一种广泛应用的串行通信协议&#xff0c;最初由 德国BOSCH公司开发&#xff0c;并已成为国际标准。 低速CAN&#xff08;ISO11519&#xff09;通…

VUE3+VITE简单的跨域代理配置

出于安全考虑&#xff0c;未设置前端白名单&#xff0c;前端开发时&#xff0c;需要配置代理。 在本地创建一个虚拟服务器&#xff0c;发送请求数据&#xff0c;同时接受请求的数据&#xff0c; 利用服务器与服务器间&#xff0c;交互&#xff0c;不会有跨域问题&#xff0c;也…

影视仓最新接口+内置本包方法的研究(2024.12.27)

近日喜欢上了研究影视的本地仓库内置&#xff0c;也做了一个分享到了群里。 内置本地仓库包的好处很明显&#xff0c;当前线路接口都是依赖网络上的代码站存放&#xff0c;如果维护者删除那就GG。 虽然有高手制作了很多本地包&#xff0c;但推送本地包到APP&#xff0c;难倒一片…