草庐IT

Swagger-core

全部标签

.net core 关于对swagger的UI(Index.html)或接口的权限验证;

背景:如何在ASP.NetCore的生产环境中保护swaggerui,也就是index.html页面。其实swagger是自带禁用的功能的,只需要设置开关即可。但是有一些场景,是需要把这些接口进行开放或者导出成文档供第三方进行调用,这个时候却又不想让所有人访问。本文介绍一种权限控制访问的方式,用来指定用户使用;基本思路:1,利用UseMiddlewareExtensions的UseMiddleware方法将中间件类型添加到应用程序的请求管道中。2,增加异步方法用来验证请求的地址的header(不局限于Headers,或cookie或session)携带的信息进行比对。3,根据比对结果返回重新登

.net core 关于对swagger的UI(Index.html)或接口的权限验证;

背景:如何在ASP.NetCore的生产环境中保护swaggerui,也就是index.html页面。其实swagger是自带禁用的功能的,只需要设置开关即可。但是有一些场景,是需要把这些接口进行开放或者导出成文档供第三方进行调用,这个时候却又不想让所有人访问。本文介绍一种权限控制访问的方式,用来指定用户使用;基本思路:1,利用UseMiddlewareExtensions的UseMiddleware方法将中间件类型添加到应用程序的请求管道中。2,增加异步方法用来验证请求的地址的header(不局限于Headers,或cookie或session)携带的信息进行比对。3,根据比对结果返回重新登

ASP.NET Core - 选项系统之选项使用

上一篇ASP.NETCore-选项系统之选项配置中提到IOptions、IOptionsMonitor和IOptionsSnapshot三个接口,通过这三个接口都可以从依赖注入容器中解析出已经配置的选项类,在我们通过Configure方法配置选项时,这三个接口会被同时注册,但三个接口是有区别的,适用场景也有所不同。1.IOptionsIOptions对象的生命周期是Singleton(单例),它可以在任意地方进行注入使用该接口对象在第一次使用的时候被实例化,并且选项类中的内容会一直保持不变,前面也提过选项类内容可以在配置来源修改之后更新,但是通过IOption解析的选项类不会随着更新而改变IO

ASP.NET Core - 选项系统之选项使用

上一篇ASP.NETCore-选项系统之选项配置中提到IOptions、IOptionsMonitor和IOptionsSnapshot三个接口,通过这三个接口都可以从依赖注入容器中解析出已经配置的选项类,在我们通过Configure方法配置选项时,这三个接口会被同时注册,但三个接口是有区别的,适用场景也有所不同。1.IOptionsIOptions对象的生命周期是Singleton(单例),它可以在任意地方进行注入使用该接口对象在第一次使用的时候被实例化,并且选项类中的内容会一直保持不变,前面也提过选项类内容可以在配置来源修改之后更新,但是通过IOption解析的选项类不会随着更新而改变IO

基于.NET Core + Jquery实现文件断点分片上传

基于.NETCore+Jquery实现文件断点分片上传前言该项目是基于.NETCore和Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的文件是没有问题的。使用到的技术Redis缓存技术Jqueryajax请求技术为什么要用到Redis,文章后面再说,先留个悬念。页面截图NuGet包Microsoft.Extensions.Caching.StackExchangeRedisZack.ASPNETCore杨中科封装的操作Redis包分片上传是如何进行的?在实现代码的时候,我们需要了解文件为什么要分片上传,我直接上传不行吗。大家在使用b站、快手等网站

基于.NET Core + Jquery实现文件断点分片上传

基于.NETCore+Jquery实现文件断点分片上传前言该项目是基于.NETCore和Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的文件是没有问题的。使用到的技术Redis缓存技术Jqueryajax请求技术为什么要用到Redis,文章后面再说,先留个悬念。页面截图NuGet包Microsoft.Extensions.Caching.StackExchangeRedisZack.ASPNETCore杨中科封装的操作Redis包分片上传是如何进行的?在实现代码的时候,我们需要了解文件为什么要分片上传,我直接上传不行吗。大家在使用b站、快手等网站

.NET Core WebApi 多语言本地化,动态切换多语言

.NETCoreWebApi多语言本地化,动态切换多语言原生的.netcorewebapi动态多语言本地话具体更多详细内容,可以参考官方文档首先看效果图整体项目结构图开始前需要讲一些重要的点1.是通过文件命名空间的路径去找寻的,比如Resource.cs是在和多语言Resource.xxxx.resx文件同一级别的2.参考下图,不然多语言翻译时是找寻不到的​ConfigureServices里面进行以下配置services.AddLocalization();services.Configure(options=>{varsupportedCultures=newList{newCulture

.NET Core WebApi 多语言本地化,动态切换多语言

.NETCoreWebApi多语言本地化,动态切换多语言原生的.netcorewebapi动态多语言本地话具体更多详细内容,可以参考官方文档首先看效果图整体项目结构图开始前需要讲一些重要的点1.是通过文件命名空间的路径去找寻的,比如Resource.cs是在和多语言Resource.xxxx.resx文件同一级别的2.参考下图,不然多语言翻译时是找寻不到的​ConfigureServices里面进行以下配置services.AddLocalization();services.Configure(options=>{varsupportedCultures=newList{newCulture

.net core Blazor+自定义日志提供器实现实时日志查看器

场景我们经常远程连接服务器去查看日志,比较麻烦,如果直接访问项目的某个页面就能实时查看日志就比较奈斯了,花了1天研究了下.netcore日志的原理,结合blazor实现了基本效果。实现原理自定义日志提供器,将日志记录到内存中,滚动10W条删除。提供blazor组件,实时从内存中读取后显示,搞了个简单的条件搜索。为毛用内存存储?因为快,主要目的是实时监控,方便调试,只需要最近一段时间的数据,所以内存是最合适的。由于数据是存储在全局静态变量中的(线程安全的),所以多个人同时打开页面查看日志其实看的是同一份数据。这个库默认提供了与.netcore默认的日志框架的继承,但你也可以用自己的方式把数据存储

.net core Blazor+自定义日志提供器实现实时日志查看器

场景我们经常远程连接服务器去查看日志,比较麻烦,如果直接访问项目的某个页面就能实时查看日志就比较奈斯了,花了1天研究了下.netcore日志的原理,结合blazor实现了基本效果。实现原理自定义日志提供器,将日志记录到内存中,滚动10W条删除。提供blazor组件,实时从内存中读取后显示,搞了个简单的条件搜索。为毛用内存存储?因为快,主要目的是实时监控,方便调试,只需要最近一段时间的数据,所以内存是最合适的。由于数据是存储在全局静态变量中的(线程安全的),所以多个人同时打开页面查看日志其实看的是同一份数据。这个库默认提供了与.netcore默认的日志框架的继承,但你也可以用自己的方式把数据存储