厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
【NetCore】企业微信实现扫码登录(WEB)
在之前企业微信消息推送,继续如何通过企业微信实现扫码登录。redirect_uri 需与授权回调域一致。2.添加用户信息缓存类,优先从缓存中提取。1.html 获取企业微信扫码。原创 2024-04-29 09:17:47 · 245 阅读 · 0 评论 -
【nuget】如何移动 nuget 缓存文件夹
nuget原创 2024-03-15 16:27:48 · 931 阅读 · 0 评论 -
【日志】log4net 日志不能输出
查找原因是因为 loginfo.IsInfoEnabled、loginfo.IsErrorEnabled等一直为false。原创 2024-03-11 08:09:34 · 456 阅读 · 0 评论 -
【NetCore】企业微信消息推送
应用支持推送文本、图片、视频、文件、图文等类型。请求方式:POST(HTTPS请求地址参数说明: ACCESS_TOKEN 必填各个消息类型的具体POST格式请阅后续“消息类型”部分。如果有在管理端对应用设置“在微工作台中始终进入主页”,应用在微信端只能接收到文本消息,并且文本消息的长度限制为20字节,超过20字节会被截断。同时其他消息类型也会转换为文本消息,提示用户到企业微信查看。支持id转译,将userid/部门id转成对应的用户名/部门名,原创 2023-11-09 06:51:27 · 524 阅读 · 0 评论 -
【NetCore】.NetCore之下载文件
本篇将和大家分享的丝.NetCore下载文件,常见的下载有两种:A标签直接指向下载文件地址和post或get请求后台输出文件流的方式,本篇也将围绕这两种来分享;如果对您有好的帮助,请多多支持。转载 2023-01-10 13:53:50 · 1559 阅读 · 0 评论 -
[NetCore]ASP.NET Core 产生连续 Guid
1 前言1.1 这篇文章面向的读者本文不会过多解释 Guid 是什么,以及顺序 Guid 的作用,需要读者自行具备:知道 Guid,并且清楚其作用与优势清楚 Guid.NetGuid() 产生的 Guid 是混乱无序的,想要一种产生顺序 Guid 的算法来保证数据库的高效运行1.2 连续 Guid 的原理该 Guid 有16字节(byte)共128位(bit),可以包含时间戳,而顺序 Guid 主要是根据时间戳顺序来实现的,所以时间戳的部分,作为排序的决定性因素。转载 2022-11-26 08:15:22 · 915 阅读 · 0 评论 -
【Quartz】任务调度Quartz从入门到入土(史上最详细)
GitHub:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目quartz是一个用java实现的开源任务调度框架,可以用来创建简单或者复杂的任务调度,并且可以提供许多企业级的功能,比如JTA以及集群等,是当今比较流行的JAVA任务调度框架。现在也移植到NET,支持.NET。引用官网的一段话jobs大概意思:quartz是一个功能丰富的开源的任务调用系统,它可以创建简单或者复杂的几十、几百、甚至成千上万的job。原创 2022-11-14 14:47:38 · 948 阅读 · 0 评论 -
【NetCore】百度人脸识别HTTP SDk实战:基于C# ASP.NETCore Net 6
在正式开始之前,需要一些准备以及预备知识,这里可以参考https://www.cnblogs.com/xiongze520/p/10387355.html以及https://www.cnblogs.com/xiongze520/p/10688545.html,讲的很详细。这里只要是人脸活体检测以及1:N检测,根据返回的UserId查找出数据库中对应的用户信息,依然很简单,大家应该看的懂。在人脸注册前需要检测人脸库是否存在该人脸,已经存在了,则终止注册行为。(1)人脸1:N检测,返回人脸对应用户信息。转载 2022-10-25 20:31:17 · 799 阅读 · 0 评论 -
【Asp.Net Core】C#解析Markdown文档
C#解析Markdown文档实现,中间件类实现。引入第三方包ude和markdownsharp原创 2022-09-16 09:14:40 · 1343 阅读 · 0 评论 -
【netcore】 ASP.NET Core 中间件
1.广义上来讲:Tomcat,WebLogic,Redis,IIS;狭义上来讲,ASP.NET Core中的中间件指ASP.NET Core 中的一个组件。2.中间件由前逻辑,next,后逻辑3部分组成,前逻辑为第一段要执行的逻辑代码,next为指向下一个中间件的调用,后逻辑为从下一个中间件执行返回所执行的逻辑代码。原创 2022-09-14 15:17:35 · 1200 阅读 · 0 评论 -
【Asp.Net Core】Asp.Net Core与配置系统的集成
修改环境变量时,因为变量是与进程相关。重新运行运用程序经常并没有改变读取环境变量不会是最新的,需要重新启动VS。3)加载项目根目录下的appsettings.{Enviroment}2)加载项目根目录下的appsettings.json。4)当程序运行在开发环境下,程序会加载“用户机密”配置。1)加载现有的Iconfiguration。5)加载环境变量中的配置。...原创 2022-08-26 10:52:56 · 331 阅读 · 0 评论 -
【Asp.Net Core】缓存管理
缓存管理,标准协议,客户端缓存,服务器缓存,缓存时间策略,缓存穿透,缓存雪崩,分布式缓存原创 2022-08-24 09:12:26 · 450 阅读 · 0 评论 -
【Net6】Net 5.0迁移到Net 6.0
在此日期之前,您需要将您使用的 .NET 版本更新为受支持的版本 (.NET 6.0),以便继续接收更新。适用于 ASP.NET Core 的新的 .NET 6 最小托管模型只需要一个文件和几行代码。如果依靠 global.json 文件来面向特定 .NET SDK 版本,请将 version 属性更新为已安装的 .NET 6.0 SDK 版本。本文档后面会提供使用最小托管模型将 ASP.NET Core 5 Startup 代码迁移到 ASP.NET Core 6 的详细示例。只需要一个文件和四行代码。.原创 2022-08-18 10:49:44 · 1410 阅读 · 0 评论 -
[Mvc&Core]记录部署好的应用程序突然无法访问的一次蹩脚经历!
查看输出错误:(1)检查:跨域配置,测试多种方式仍然无效!(2)重新发布程序,居然连接账号都无法登录了?发现新发布的连接数据库是本地库,郁闷。。。修改重新发布!!!测试:登录正常,但是加载WebApi接口还是存在问题。百度结果:HTTP 响应头 如果存在Access-Control-Allow-Origin 则需要删除。本次居然无法打开?还报错:无法使用虚拟目录密码作为用户 administrator 在本地登录到(3) 本地测试,又是一切正常是哪里出了问题呢?API 地址直接在URL上访原创 2022-06-15 10:38:56 · 222 阅读 · 0 评论 -
[MVC&Core]ASP.NET Core MVC 视图传值入门
ASP.NET Core MVC 视图传值入门转载 2022-06-10 08:22:42 · 506 阅读 · 0 评论 -
【Echart】echart 入门
echart 入门什么是EchartEcharts支持的图表?echarts和chart对比echarts的优点:echarts的缺点:chart.js优点:一. 基本概念二. echart的基本概念什么是EchartEcharts–商业级数据图表商业级数据图表,它是一个纯JavaScript的图标库,兼容绝大部分的浏览器,底层依赖轻量级的canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对原创 2022-04-22 08:42:22 · 2265 阅读 · 0 评论 -
【netcore】MiniExcel轻量级开源组件使用
MiniExcel轻量级开源组件使用开源地址导入&读取Excle实践效果开源地址添加链接描述通常复杂的EXCEL操作采用NPIO组件,优点:性能优越,支持各种复杂操作。缺点:比较繁琐和重量级MiniExcel:则可以满足大部分应用场景,又是轻量级Guget:搜MiniExcel安装组件导入&读取Excle文档简介;读/导入 ExcelQuery 查询 Excel 返回强型别 IEnumerable 数据 [Try it]public class UserAccou原创 2022-04-19 16:32:39 · 6941 阅读 · 1 评论 -
【netcore】操作日志
操作日志新的改变新的改变 public async Task LogAsync(ActionExecutingContext context, ActionExecutionDelegate next) { var sw = new Stopwatch(); sw.Start(); var actionExecutedContext = await next(); sw.Sto原创 2022-04-15 15:18:33 · 872 阅读 · 0 评论 -
【netCore】基于Claim登录授权
基于Claim登录授权场景配置过期报错场景用户登录是一个非常常见的应用场景 .通常我们采用session存储方式。如果存储的内容较多,频繁使用时候显得有点累赘,当然可以自定义对象,但我测试没有成功。net core的登录方式跟以往有些不同,可以说是往好的方向发展,变得更容易扩展,更方便。配置1.首先需要NuGet安装一个包:Microsoft.AspNetCore.Authentication.Cookies打开项目中的Startup.cs文件,找到ConfigureServices方法,我们原创 2022-04-09 16:50:17 · 651 阅读 · 0 评论 -
【netcore】ASP.NET Core中如何更改文件上传大小限制maxAllowedContentLength属性值
ASP.NET Core中如何更改文件上传大小限制maxAllowedContentLength属性值Web.config中的maxAllowedContentLength这个属性可以用来设置Http的Post类型请求可以提交的最大数据量,超过这个数据量的Http请求ASP.NET Core会拒绝并报错,由于ASP.NET Core的项目文件中取消了Web.config文件,所以我们无法直接在visual studio的解决方案目录中再来设置maxAllowedContentLength的属性值。但是转载 2022-04-01 21:38:03 · 2360 阅读 · 0 评论 -
[NetCore]依赖注入
背景今天在做权限过滤器时,需要根据userid获取菜单列表。直接写一个方法在过滤器中。突然感觉怪怪的,能否分离呢?假设我这个获取菜单列表在HomeController也同样被使用。是否可以采取注入方式呢?分离拆分成接口和服务:interface和service注入Filter private readonly ISysMenuService sysMenuService; public PermissionActionFilterAttribute(ISysMe原创 2022-03-30 14:31:56 · 506 阅读 · 0 评论 -
[C#]读取appsettings.json 文件中文乱码的问题
读取appsettings.json 文件中文乱码的问题最近在做一个指定文件目录下指定文件并自动打开对应程序问题,遇到了读取文件目录中文乱码问题断点调试的时候发现coll得到值中文乱码,在网上找了一些解决方案说是编码的问题要设置成 UTF-8 with sign先说一下这个设置在哪,visual studio界面 工具 =>自定义 => 命令 =>添加命令 =>文件 =>找到高级保存选项点击 然后关闭,这时在visual studio界面就会有高级保存选项我们需要双击原创 2022-03-28 17:22:14 · 1727 阅读 · 1 评论 -
[Core]Asp.Net Core中的各种过滤器(授权、资源、操作、结果、异常)
说明提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权、响应缓存(对请求管道进行短路,以便返回缓存的响应)、 防盗链、本地化国际化等,过滤器用于横向处理业务,符合Aop思想,它也可以有效的避免代码的重复复制。在Asp.Net Core中,有5种过滤器,分别是授权、资源、操作、结果、异常五大过滤器,与之前的Asp.Net 相比,多了一个资源过滤器,剩下的4个授权、 操作、结果、异常过滤器则没有什么太大的区别。PS: 传统Asp.Net 中的4种过滤器参考 https://w.转载 2022-03-20 08:50:59 · 3334 阅读 · 0 评论 -
【netcore】利用asp.net core actionfilter实现简单的RBAC权限过滤
参考这位大神的博客:https://www.cnblogs.com/fonour/p/5848933.html,实现了简单的RBAC权限管理系统,但文章没有提到对权限的过滤,直接输入url还是可以访问未授权功能,在这刚学过滤器,简单实现如下:首先根据他写博客里的MenuAppService,写一个函数根据用户获取所有菜单和按钮:/// /// 根据用户获取功能菜单 /// </summary> /// <param name="userId">用转载 2022-03-20 08:47:17 · 670 阅读 · 0 评论 -
【.net core】利用actionFilter实现session过期自动跳转
利用actionFilter实现session过期自动跳转记得以前在webfrom时代,采用重写page基类方式判断session是否过期,如何在每个页面上继承自定义重写的page类。那么在mvc或netcore中又如何实现呢?搜索了一些方法,网上很多也采用类似webfrom重写Action或Controller的方式实现,确实可以。但同样存在一个问题,每个页面都需要去继承或者标注action的特性。那么我们是否可以反过来思考,只需要在不需要检查的action上进行特性的标记呢?说干就干:自定义F原创 2022-03-19 07:55:19 · 903 阅读 · 0 评论 -
[WebApi]ASP.Net Core 中使用JWT认证(3.1版本,5.0也可以使用)
ASP.Net Core 中使用JWT认证JWT简单介绍开始编码JWT简单介绍关于JWT网上有很多介绍,这里就不介绍了,本文主要以实现为主。JWT由3部分构成:HEADER 、PAYLOAD 、SIGNATUREHEADER :包含token的元数据,主要是加密算法,和签名的类型,如下面的信息,说明了加密的对象类型是JWT,加密算法是HMAC SHA-256{"alg":"HS256","typ":"JWT"}PAYLOAD :主要包含一些声明信息(claim),这些声明是key-v原创 2022-01-25 10:50:31 · 998 阅读 · 3 评论 -
[Asp.Net Core]ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
引言在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。或者详细点,或者简单点。那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一!为什么使用Swagger作为REST APIs文档生成工具Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试A原创 2022-01-16 08:59:44 · 985 阅读 · 0 评论 -
[Asp.Net Core]NET5中间件
NET5中间件1.先use 先执行 ,每一次Use一个中间件,其实就是在之前的基础上,套了一层;2.请求来了以后,真正执行的时候,是一层一层的内部执行,然后再执行出来;----俄罗斯套哇 增加程序的扩展性---如果想要增加一层,直接增加一个中间件就可以来完成;中间件的执行,是一个俄罗斯套娃;1.先use 先执行 ,每一次Use一个中间件,其实就是在之前的基础上,套了一层;2.请求来了以后,真正执行的时候,是一层一层的内部执行,然后再执行出来;----俄罗斯套哇 增加程序的扩展性—如果想要增加一层,直接原创 2022-01-11 09:08:52 · 337 阅读 · 0 评论 -
[Asp.Net Core]NET5跨平台的本质
NET5跨平台的本质1.Web应用程序是一个控制台;—Main程序的入口;跨平台的原因在于框架已经内置了主机,只要是程序启动,就是启动了主机,就可以监听端口;请求来了,只要是请求这个端口,主机就可以响应;无论是在Windows还是在Linux下开发,都是要第一步完成环境的;这样就不用拘泥于是在Windows还是在linux,----这就是能够跨平台的本质原因;新的改变 public static void Main(string[] args) {原创 2022-01-10 08:58:28 · 260 阅读 · 0 评论 -
[Asp.Net Core]NET5策略鉴权
之前的角色授权是在代码中把角色定义死了;更希望能够自己来完成校验逻辑;第一步:增加CustomAuthorizationHandler-----专用做检验逻辑的; 要求继承自AuthorizationHandler<> 泛型抽象类; public class CustomAuthorizationHandler :AuthorizationHandler<CustomAuthorizationRequirement> { public Custom原创 2021-12-29 10:29:44 · 356 阅读 · 0 评论 -
[Asp.Net Core]鉴权授权
鉴权授权为了拦截一些操作;传统的授权方式;session/Cookies来完成;1.在请求某个Action之前去做校验,验证当前操作者是否登录过,登录过就有权限2.如果没有权限就跳转到登录页中去AOP–Filter; ActionFilter:传统的登陆,需要匿名;.NET5鉴权授权通过中间件来支持;第一步:在 app.UseRouting();之后,在app.UseEndpoints()之前,增加鉴权授权;鉴权: app.UseAuthentication();—检测用户是否登录授权原创 2021-12-23 09:19:56 · 991 阅读 · 0 评论 -
[Asp.Net Core]ResultFilter的应用
ResultFilter的应用双语言系统,其实就需要两个视图;要根据语言的不同,来选择不同的视图来渲染;测试双语言系统,其实就需要两个视图;要根据语言的不同,来选择不同的视图来渲染;因为在渲染视图之前,会进入到OnResultExecuting方法,就可以在这个方法中确定究竟使用哪一个视图文件;indexone@{ Console.WriteLine("这里是渲染视图的内容");}<h1>这是双语言系统的 中文界面 THIS IS INDEXONE</h1>原创 2021-12-22 08:38:26 · 770 阅读 · 0 评论 -
[Asp.Net Core]ResultFilter
1.自定义一个类,继承Attribute,实现IResultFilter接口,实现方法 public class CustomResultFilterAttribute : Attribute, IResultFilter { /// <summary> /// 渲染视图之前执行 /// </summary> /// <param name="context"></param>原创 2021-12-21 09:02:18 · 719 阅读 · 0 评论 -
[Asp.Net Core]ExceptionFilter能捕捉到哪些异常
1.控制器实例化异常 ----T public SeventhController(ILogger<SeventhController> logger) { throw new Exception("控制实例化的时候,发生异常了。。"); }2.异常发生在Try-cache中 —F public IActionResult IndexException01() {原创 2021-12-20 08:41:30 · 280 阅读 · 0 评论 -
[Asp.Net Core]ExceptionFilter
ExceptionFilterExceptionFilter1.自定义一个CustomExceptionFilterAttribute ,实现IExceptionFilter接口,2.实现方法,先判断,异常是否被处理过,如果没有被处理过,就处理;3.分情况处理:1.如果是ajax请求,就返回JosnResult,如果不是Ajax请求,就返回错误页面4.全局注册,在Starup中的ConfigureServices注册5.测试ExceptionFilter1.自定义一个CustomExceptionFil原创 2021-12-17 09:08:52 · 354 阅读 · 0 评论 -
[Asp.Net Core]Filter匿名
Filter匿名如果全局注册,Filter生效于所有的Acion;如果有部分Action我希望你不生效呢?怎么办呢?匿名----可以避开Filter的检查;如何支持自定义的Filter,匿名1.自定义一个特性; public class CustomAllowAnonymousAttribute:Attribute { }2.在需要匿名的Filter内部,检查是否需要匿名(检查是否标记的有匿名特性),如果有就直接避开...原创 2021-12-16 09:06:02 · 327 阅读 · 0 评论 -
[Asp.Net Core]Resource扩展定制支持缓存
ResourceFilter就是为了缓存而存在。。。之前在ActionFilter 需执行controller实列化。ResourceFilter 则不需要。这样可以减少性能损失,提高效率。CustomResourceFilterAttributepublic class CustomResourceFilterAttribute : Attribute, IResourceFilter { private static Dictionary<string, obj原创 2021-12-15 09:33:42 · 483 阅读 · 0 评论 -
[Asp.Net Core]Filter的生效范围和执行顺序
Filter的生效范围和执行顺序1.标记在Action上,就只对当前Action生效2.标记在Controller上,就对Controller上中的所有Action生效3.全局注册,对于当前整个项目中的Action都生效,在ConfigureServices中增加以下代码即可如果有三个actionFilter,分别注册全局,控制器、Action;执行顺序如何呢?定义三个ActionFilter,分别注册全局,控制器,Action执行顺序如下:1.控制器实例化2.全局注册的Filter-OnA原创 2021-12-14 08:57:10 · 677 阅读 · 0 评论 -
[Asp.Net Core]FilterFactory扩展定制
FilterFactory扩展定制为可以使用ServiceFilter/TypeFilter就可以支持依赖注入呢?----一定是IOC容器来完成;1.自定义一个特性类,继承Attribute,实现接口 IFilterFactory;实现接口中的方法2.通过构造函数传递需要实例化的特性的type类型3.在实现接口中,通过Type类型获取到实例4.标记在Action上面5.测试为可以使用ServiceFilter/TypeFilter就可以支持依赖注入呢?----一定是IOC容器来完成;1.自定义一个特性类原创 2021-12-13 09:19:35 · 327 阅读 · 0 评论 -
[Asp.Net Core]Filter的多种注册
Filter的多种注册1.[CustomActionFilter]---Fitler必须有无参数构造函数2.[TypeFilter(typeof(CustomActionFilterAttribute))],可以没有无参数构造函数,可以支持依赖注入3.[ServiceFilter(typeof(CustomActionFilterAttribute))],可以没有无参数构造函数,可以支持依赖注入,但是必须要注册服务1.[CustomActionFilter]—Fitler必须有无参数构造函数2.[Typ原创 2021-12-10 13:37:28 · 1067 阅读 · 0 评论