新闻中心

ASP.NET Core怎么进行身份验证和授权 JWT认证实现教程

2025-12-14
浏览次数:
返回列表
ASP.NET Core 中 JWT 身份验证核心是配置 Authentication 与 Authorization 中间件,流程为登录发 Token → 请求带 Token → 中间件自动校验 → 控制器用 [Authorize] 限定访问;需正确注册 JWT Bearer 服务、生成 Token 并设置密钥、签发者等参数,保护接口时结合角色或策略授权,并确保前端请求携带格式正确的 Authorization: Bearer Token 头。

asp.net core怎么进行身份验证和授权 jwt认证实现教程

ASP.NET Core 中使用 JWT 进行身份验证和授权,核心是配置 AuthenticationAuthorization 中间件,并正确颁发、验证 Token。关键不在于写多少代码,而在于理解流程:登录发 Token → 请求带 Token → 中间件自动校验 → 控制器用 [Authorize] 限定访问。

启用 JWT 身份验证服务

Program.cs(.NET 6+)中注册 JWT Bearer 验证服务,需提供密钥、签发者、受众等基础参数:

  • 密钥必须是至少 256 位的对称密钥(如 new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your-32-byte-secret-key-here"))
  • 指定 ValidateIssuerValidateAudience 等为 true 时,Token 中必须包含匹配的 issaud 字段
  • 设置 ClockSkew 可放宽 Token 过期时间容错(默认 5 分钟,设为 TimeSpan.Zero 表示严格校验)

生成并返回 JWT Token

在登录接口(如 POST /api/auth/login)中,验证用户名密码后手动创建 Token:

  • ClaimsIdentity 或直接构建 Claim[] 数组,例如 new Claim(ClaimTypes.Name, user.Username)new Claim("role", "admin")
  • 使用 JwtSecurityTokenHandler 创建 Token 对象,设置有效期(Expires)、签名凭证(SigningCredentials
  • 调用 WriteToken() 得到字符串,通常以 JSON 形式返回:{ "token": "xxx.yyy.zzz" }

保护 API 接口与角色/策略授权

[Authorize] 特性即可启用验证;进一步控制权限可结合角色或自定义策略:

Glarity Glarity

Glarity是一款免费开源的AI浏览器扩展,提供YouTube视频总结、网页摘要、写作工具等功能,支持免费的镜像翻译,电子邮件写作辅助,AI问答等功能。

Glarity 131 查看详情 Glarity
  • [Authorize(Roles = "admin")] 要求用户拥有 role 声明且值为 admin(注意:默认读取 ClaimTypes.Role,若用自定义 key 如 "role",需在添加 JWT 服务时通过 TokenValidationParameters.NameClaimTypeRoleClaimType 指定)
  • AddAuthorization 注册策略,例如限制仅 VIP 用户:builder.Services.AddAuthorization(options => options.AddPolicy("VipOnly", p => p.RequireClaim("level", "vip"))),然后在控制器上写 [Authorize(Policy = "VipOnly")]

前端请求记得带 Authorization Header

客户端每次请求受保护接口时,必须在 HTTP Header 中带上 Token:

  • 格式固定为:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • 漏掉 Bearer 前缀(注意空格)会导致 401;Token 过期、签名无效、issuer 不匹配等都会返回 401 或 403
  • 开发调试时可用 Postman 或 curl 快速验证:curl -H "Authorization: Bearer xxx" https://localhost:5001/api/values

基本上就这些。JWT 流程不复杂但容易忽略细节——比如密钥长度不够报错、Claim 类型没对齐导致角色失效、Header 少了空格之类。把验证逻辑拆成“发 Token”和“验 Token”两步理清,再配好中间件和策略,就能稳稳跑起来。

以上就是ASP.NET Core怎么进行身份验证和授权 JWT认证实现教程的详细内容,更多请关注其它相关文章!


# 序列化  # 中国铁道建设报网站  # ajax如何做seo  # 地产营销开盘推广方案  # 佛山房地产网站优化热线  # 河源抖音seo讯息公司  # 新民专业网站建设  # 淮北网站推广电话  # 双鸭山抖音关键词排名  # 宁夏校园营销推广渠道  # 天籁小说网站建设  # 相关文章  # 设为  # 如何在  # 就能  # js  # 操作指南  # 如何将  # 等功能  # 自定义  # 身份验证  # red  # yy  # .net  # ai  # curl  # iis  # json  # 前端 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】  离线运行Go语言之旅:本地部署与GOPATH配置指南  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  百度浏览器字体显示异常偏小_百度浏览器字体渲染修复方案  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  Pandas DataFrame 多条件优先级排序与排名  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  必由学官方平台入口 必由学在线课堂登录地址  CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  win11 arm版怎么安装 M1/M2 Mac虚拟机安装ARM win11的方法  TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程  自定义Bag-of-Words实现:处理带负号的词汇权重  Linux如何排查内存不足OOME问题_LinuxOOM分析教程  UC浏览器网页版登录入口官网 电脑版网址入口  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  C#使用XPath查询节点时出错? 常见语法错误与调试技巧  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧  怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  如何在 Excel Online 和 Google 表格中更改日期格式  4399免费游戏网址入口 4399小游戏免费入口点开即玩  解决Flask中Quill编辑器内容提交失败及TypeError的指南  解决Bootstrap卡片顶部边距导致背景图下移的问题  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  FullCalendar 自定义按钮样式定制指南  c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  网站内容防复制粘贴的实现策略与局限性  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  汽车之家官方网站官网入口_汽车之家网页版直接进入  windows10怎么查看硬盘序列号_windows10硬盘id查询命令  响应式图片在网页设计中的正确实现方法  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置  汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口  谷歌google账号注册详细步骤 谷歌账号注册官方教程  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  J*aScript数组对象转换:按指定键分组与值收集  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  J*aScript中赋值与自增运算符的复杂交互与执行机制 

搜索