avatar
文章
46
分类
10

友情链接
CHUNGLAM
友情链接

CHUNGLAM

【Swagger】.NET Core 3.1 Swagger3.0枚举字段注释不显示的处理
发表于2021-06-29|Swagger
前言    从Swagger2.0升级到Swagger3.0,发现枚举类型的注释不显示了。上网多方搜寻以后,发现好像没有官方的办法去解决,只能通过自身写适配Swagger的Filter去自行处理。 解决方法    方案大致通过以下几步来完成Filter 1、获取Model层所有枚举123456789101112131415161718/// <summary>/// 获取Model层所有枚举/// </summary>/// <returns></returns>private static Dictionary<string, Type> GetAllEnum(){ var types = Assembly.Load("xxx.Models").GetTypes(); var dic = new Dictionary<string, Type>(); fore ...
【Solution】关于在无WebSocket的情况下,用户角色权限发生变化以及JWT滑动过期的情况处理
发表于2021-06-26|Solution
前言     当前有相关业务,但由于觉得没有必要开着长链接,遂不使用WebSocket,但这时候需要处理用户角色权限发生变化的情况,同时对JWT滑动过期造成了一定的影响:没有WebSocket的情况下,无法通知前端用户的角色发生了变化。并且由于JWT是无状态的,所以在用户角色权限发生变化的时候,只能生成新的JWT。此时只能在各个关键节点调用RefreshToken的接口去获得新的Token,以此保证用户的Token是最新的。 问题描述     但上述的情况会衍生出两个问题和一个需优化的情况 问题1:由于在多处需要调用RefreshToken这个接口,假设前端在调用该接口时,担心用户体验的问题,未对其余请求进行阻塞,而会使用旧的Token去请求其他接口的时候。有可能会因为Token过期或者用户角色权限发生变更导致出现401或403的情况。 问题2:此时怎么让用户的JWT过期时间滑动起来呢? 待优化:同样由于在多处需要调用RefreshToken这个接口,假设用户的角色权限没有发生变化,Token也没有过期, ...
【DevOps】在GitLab利用CICD部署.NetCore项目各步骤总结
发表于2020-11-20|DevOps
前言     近日在一台新服务器上完成了公司项目演示环境的迁移,遂记录下大致步骤 步骤     Linux云服务器操作系统:CentOS8 1、搭建环境(安装以下所需环境,附各命令)(1)、.netcore-sdk1sudo dnf install dotnet-sdk-3.1 (2)、.netcore-runtime1sudo dnf install aspnetcore-runtime-3.1 (3)、nginx1sudo yum install -y nginx (4)、nodejs1sudo yum module install nodejs (5)、pm21sudo npm i -g pm2 至此环境搭建完成 2、由于发现新服务器安全组未开启80、443端口,故开启 3、设置全局环境变量vim /etc/profile最后一行加入export ASPNETCORE_ENVIRONMENT=Stagingsource /etc/profile 4、在根目录准备好前后台所需文件夹mkdir /roo ...
【Dapper】关于使用DynamicParameters构建动态参数查询
发表于2020-10-01|Dapper
前言     最近因单纯使用EFCore已经不能够满足业务的需求,经领导们的讨论决定:引入Dapper,形成EFCore+Dapper的组合。其中关于使用DynamicParameters构建动态参数查询做个小小的记录。 记录     一般的用法如下: 1234var sql = "SELECT * FROM TABLE WHERE NAME = @name";var params = new DynamicParameters();params.Add("@name", "LAM");var data = Connection.QueryAsync<TableVo>(sql, param);     模糊查询的方式稍微有点不同,百分号也应该算到值里,如下: 1234var sql = "SELECT * FROM TABLE WHERE NAME LIKE @name"var ...
【JPush】关于极光推送安卓端在APP卸载重装后依旧能收到推送的问题
发表于2020-09-01|JPush
前言     最近在使用极光推送的时候,碰到个问题:当在服务端利用极光推送SDK根据RegId在用户登录时给本机安装的这个APP绑定别名(Alias)别名以后,在未登录的情况下将APP卸载后重装,此时用户重新打开APP,在未登录状态下还是可以收到卸载重装前登录的用户对应的推送消息。不太符合常规的业务需求。 解析问题     造成这个问题的大致原因是:在安装端的APP即使卸载重装,极光服务器里对应的RegId也是不会改变的。换言之就是在之前用户登录时绑定的别名依旧生效,服务端无法通过某一节点,比如用户卸载APP时去解绑其关联,从而导致APP依旧会接收到推送。 解决方法     当下个人认为比较好的解决方法大致如下: 1、与前端约定别名规则,绑定别名的操作交给客户端处理;(1)、交予前端处理的好处在于,前端可以在未登录时初始化这台设备的别名为””;(2)、据说APP卸载时相当于应用被清理,那个相应的绑定也会被清理(感觉(1)比较靠谱); 2、服务端只负责通过约定的别 ...
【EF Core】EF Core通过SQL语句复杂排序后获取Row_Number
发表于2020-06-26|EF Core
前言     在解决本文提到的问题之前,对SQL中的Row_Number概念还不是很强,在此之后加深了一定的认识。 发现问题     最近碰到一个关于“通过复杂排序后,在页面下拉加载数据时,需使用瀑布流的方式来规避原始分页可能出现重复数据的情况”的需求。此需求有以下关键点: 复杂排序 下拉通过瀑布流方式加载数据     根据上述关键点,此时就会衍生出两个很重要的问题。当下拉到页面最下方时,最后一条数据到底该如何定位?且以哪个字段作为关键字段去获取后续的数据 解决问题     于是带着问题寻求公司大佬的帮助,在一番讨论过后,在公司大佬的建议下,最后决定定位最后一条数据的关键字段使用Row_Number,但是Google、Baidu了一轮后发现EF Core并无支持排序后获取Row_Number的方法,在不得已的情况下只能通过编写SQL语句在排序之后去获取Row_Number。(PS:虽在Google上发现了thinktect ...
1…45
avatar
CHUNGLAM LO
文章
46
分类
10
公告
Go Go Go
最新文章
【EM4】Market - What foods do you have in your refrigerator?2022-06-23
【EM4】Appearance - What someone looks like?2022-06-22
【Note】C#基础知识(4)2021-11-10
【Note】C#基础知识(3)2021-11-09
【Note】C#基础知识(2)2021-11-09
分类
  • Common5
  • Dapper1
  • Database4
  • DevOps1
  • EF Core1
  • English2
  • JPush1
  • Solution2
归档
  • 六月 20222
  • 十一月 20216
  • 十月 202121
  • 九月 202111
  • 六月 20212
  • 十一月 20201
  • 十月 20201
  • 九月 20201
网站资讯
文章数目 :
46
最后更新时间 :
©2020 - 2022 By CHUNGLAM LO
粤ICP备19076664号