有哪些好的网站建设公司,jsp网站开发学习心得,网页设计登录界面模板,社交网络服务网站Swashbuckle.AspNetCore3.0 介绍一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由#xff0c;控制器和模型生成漂亮的 API 文档#xff0c;包括用于探索和测试操作的 UI。项目主页#xff1a;https://github.com/domaindrivendev/Swashbuckle.AspNetCore划… Swashbuckle.AspNetCore3.0 介绍一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由控制器和模型生成漂亮的 API 文档包括用于探索和测试操作的 UI。项目主页https://github.com/domaindrivendev/Swashbuckle.AspNetCore划重点使用多看看 Readme,然后看下项目官方示例遇到问题找找 issues继上篇Swashbuckle.AspNetCore3.0 的二次封装与使用分享了二次封装的代码本篇将分享如何给文档添加一个登录页控制文档的访问权限(文末附完整 Demo)关于生产环境接口文档的显示在此之前的接口项目中若使用了 Swashbuckle.AspNetCore都是控制其只在开发环境使用不会就这样将其发布到生产环境(安全第一) 。那么怎么安全的发布 swagger 呢我有两种想法将路由前缀改得超级复杂添加一个拦截器控制 swagger 文档的访问必须获得授权(登录)大佬若有更好的想法还望指点一二下面我将介绍基于 asp.net core2.1 且使用了 Swashbuckle.AspNetCore3.0 的项目种是怎么去实现安全校验的通过本篇文章之后可以放心的将项目中的 swagger 文档发布到生产环境并使其可通过用户名密码去登录访问,得以安全且方便的测试接口。实现思路前面已经说到需要一个拦截器而这个拦截器还需要是全局的在 asp.net core 中自然就需要用到的是中间件了步骤如下在 UseSwagger 之前使用自定义的中间件拦截所有 swagger 相关请求判断是否授权登录若未登录则跳转到授权登录页登录后即可访问 swagger 的资源如果项目本身有登录系统可在自定义中间件中使用项目中的登录没有的话我会分享一个简单的用户密码登录的方案Demo 如下图所示为使用 Swashbuckle.AspNetCore3 的项目添加接口文档登录功能在写此功能之前已经封装了一部分代码此功能算是在此之前的代码封装的一部分不过是后面完成的。文中代码删除了耦合和 demo 中会有一点差异。定义模型存放用户密码加密方法(HMACSHA256)自定义中间件此中间件中有使用的 login.html其属性均为内嵌资源故事用 GetManifestResourceStream 读取文件流并输出这样可以方便的将其进行封装到独立的类库中而不与输出项目耦合关于退出按钮可以参考前文自定义 index.htmlindex.html 添加退出按钮自定义 index.html 文档默认 index.htmlif (configObject.customAuth) { var logOutEle document.createElement(button)logOutEle.className btn logOutEle.innerText 退出logOutEle.onclick function() {location.href configObject.logoutUrl} document.getElementsByClassName(topbar-wrapper)[0].appendChild(logOutEle)
}自定义的 index.htmllogin.html注意需要将其改为内嵌资源(属性-生成操作-嵌入的资源)点此查看 index.html点此查看 login.html完整 Demo 下载Github 预览 原文地址: https://www.cnblogs.com/morang/p/9741511.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com