Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能

前言
在 SwaggerUI 中加入登录验证,是我很早前就做过的,不过之前的做法总感觉有点硬编码,最近 .Net8 增加了一个新特性:调用 MapSwagger().RequireAuthorization 来保护 Swagger UI ,但官方的这个功能又像半成品一样,只能使用 postman curl 之类的工具带上 Authorization header 来请求,在浏览器里打开就直接401了 ……
刚好有个项目需要用到这个功能,于是我把之前做过的 SwaggerUI 登录认证中间件拿出来重构了一下。
这次我依然使用 Basic Auth 的方式来登录,写了一个自定义的 SwaggerAuthenticationHandler,通过 Microsoft.AspNetCore.Authentication 提供的扩展方法来实现登录。

PS:本文以我最近在开发的单点认证项目(IdentityServerLite)为例

配置Swagger
这次我试着不按照写代码的顺序,而是站在使用者的角度来介绍,也许会更直观一些。
编辑 src/IdsLite.Api/Extensions/Cfg......

版权声明:cnblogshot 发表于 2024-05-22 23:04:18。
转载请注明:Asp-Net-Core开发笔记:给SwaggerUI加上登录保护功能 | 程序员导航网

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...