- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 .Net8中使用特性设置接口所需权限以及授权
我们可以直接在接口上标明这个接口需要哪种权限才能访问。定义一个自定义特性,该特性可以接收一个权限枚举值,并在控制器接口上使用。然后,我们需要修改授权处理器以使用这个特性来进行权限判断。
2025-02-26 17:25:05
399
原创 .Net8中自定义授权的一种实现方式(学习总结JWT、IAuthorizationMiddlewareResultHandler)
又是无业游民的一天,昆明到底还有没有做.NetCore的公司啊。。继续在图书馆总结一下学习经过吧。
2025-02-26 11:50:31
334
原创 记录一下Hibernate的学习
总共四张表,用户表、用户扩展表、车辆信息表、用户标签表。用来展示hibernate中的一对一、一对多、多对多关系。
2025-02-23 11:40:52
763
原创 使用Electron.Net打包Vue+.NetCore项目为桌面应用程序
相比在vue项目中使用electron-builder,electronNet只是注意下资源路径,…/ico.ico就是在.netcore项目的根目录下。之后会在项目目录下生成一个electron.manifest.json文件,文件中的build就是Electron Builder的配置,具体配置参考这个。创建项目后在.netcore项目下安装ElectronNet.api。在.netcore这个项目目录打开终端运行初始化。创建项目时选择vue+.netcore。主要是增加了这两行代码。
2025-01-13 13:50:23
458
原创 .NetCore使用MongoDB.Entities处理主表和子表关系
SqlSugar里面有"导航"方式,可以用来处理主表和子表时的增删改查,用起来十分甚至九分的优雅,MongoDB也有类似的处理方式。下文会简单介绍一对一、一对多、多对多时关联关系的处理。
2024-12-30 11:48:37
311
原创 .NetCore上MongoDB的ORM框架MongoDB.Entities的简单用法
这个MongoDB.Entities是一种访问MongoDB的ORM框架,写起来优雅,实在是太优雅了,和SqlSugar或者EF之类的框架一样可以使用linq。然后实体类如下定义,需要注意的是MongoDB的时间是UTC,需要在getset方法做一个转换,不然差着8小时。然后的增删改如下,直接用linq操作,和EF或者Sqlsugar之类的ORM框架类似的。首先在nuget安装MongoDB.Entities。另外查询时可以指定使用的索引,使用Option()项目启动的时候初始化。
2024-12-30 11:12:09
231
原创 .NetCore的SqlSugar使用CodeFirst批量创建数据库表
通过反射读取所有带有SugarTable特性的Entity,然后批量创建数据库表。
2024-12-20 16:04:39
174
原创 .NetCore使用Serilog记录日志,并根据需要使用Enrich统一增加日志额外信息
就可以在nuget安装Serilog.Enrichers.CallerInfo,就可以获取到调用者信息啦,配置改成如下,日志配置的时候增加。.Enrich.WithCallerInfo(includeFileInfo: true, assemblyPrefix: “MyApp.”),便能在outputTemplate中引入{Namespace}和{Method}等。首先在nuget安装Serilog、Serilog.Sinks.Console、Serilog.Sinks.File。
2024-12-20 10:30:06
446
原创 nsis创建的windows桌面快捷方式提示找不到指定的程序
最后创建出来的桌面快捷方式提示找不到指定的程序,但是转到安装目录却是能打开程序的,问题就在于向两个目录写了文件,右键快捷方式的属性可以看到起始位置并不是用户指定的安装目录,而是C盘那个固定位置。我用nsis打包的安装包,安装的时候向两个目录写了文件,一个目录是用户选择的安装目录,还有一个目录是固定在C盘的指定位置。先直接说结论,如果你的nsis脚本要向两个目录写文件,那创建快捷方式之前必须将输入目录改回可执行程序所在的目录。
2024-12-19 11:03:08
151
原创 .NetCore中身份验证和使用自定义的角色枚举进行授权
框架的AuthorizeAttribute特性的授权策略只能是字符串,不能用枚举,自定义一个特性,继承AuthorizeAttribute,以便使用自己的角色枚举。控制器使用时继承前面定义的BasicController,同时根据需要在AuthorizeByEnum中传入角色类型,只有当前用户角色中包含指定的角色才能调用该控制器下的接口。1.3 startup的Configure里面增加调用认证和授权的中间件,认证必须在授权前面被调用。这里的角色用的是枚举,就是startup里面配置授权策略的那个枚举。
2024-12-18 10:51:43
324
原创 .net程序修改msbuild文件,在编译时复制指定文件到指定目录
2、调试时复制Lib文件夹到DEBUG目录。1、根据目标运行时,复制对应的dll。3、发布时复制指定文件夹到发布目录。
2024-12-17 11:55:46
122
原创 将.NetCore+Electron程序制作成Linux系统的桌面应用程序安装包
opt目录就是所有第三方应用安装后的目录,打包时opt目录下包含的东西,在安装时会写到用户的电脑的对应目录,比如这里在opt下创建了mytestapp目录,包含后端的.netcore程序,Client目录包含前端electron客户端,那么用户安装时候也会将这些东西放到opt的mytestapp目录下。打包的时候将上文图中的Linux目录下的所有文件拷贝到一台Linux的电脑上,创建一个打包脚本,放到和你的DEBIAN目录同级上,脚本内容如下。需要注意Linux的换行符用的是LF,在VS的右下角选一下。
2024-12-17 11:31:00
481
原创 使用nsis打包.NetCore+Electron的windows桌面应用程序安装包
使用.NetCore+Electron做了一个单机的应用程序,要将前端后端的东西放在一起做成一个安装包,安装后还要将.NetCore作为服务启动。其实本质上还是一个BS的程序。编写nsis脚本,使用nisedit打开脚本并执行就能进行打包。4、卸载.NetCore服务(每次重新安装时需要先卸载服务)2、检测系统版本,根据系统做一些判断。1、指定打包文件和安装时的输出位置。5、添加.NetCore服务。6、编写卸载时的回调方法。
2024-12-17 10:52:15
288
原创 .netcore使用中间件转发http请求
app.UseRouting()放在转发中间件前面就可以拿到当前请求的接口在当前项目上的自定义特性这些(如果当前项目存在这个接口的话),但是app.UseEndpoints要放在转发中间件后面,因为这一步已经开始直接接口里的代码了。在startup中使用中间件,需要注意的是app.UseCors放在转发中间件的前面,不然本服务的跨域配置就不生效了。项目地址:https://github.com/ProxyKit/ProxyKit。首先在nuget安装ProxyKit。
2024-12-06 11:25:58
284
原创 c++编写的dll回调C#代码时报错Process terminated. A callback was made on a garbage collected delegate of type ‘x
场景是C#调用了C++编写的dll,然后又回调C#的方法,结果报错Process terminated. A callback was made on a garbage collected delegate of type 'HaSdkWrapper!原来是使用的时候直接调的方法,就会报错。定义全局静态委托可解决这个报错问题。
2024-12-05 18:01:57
283
原创 C#在linux获取U盘的详细信息
udevadm info --query=all --name={usbDisk} 获取磁盘详细信息,usbDisk换成自己的变量。sudo blockdev --getsize64 {usbDisk} 获取磁盘大小。现在好多单位都要换国产操作系统了,其实就是Linux,通过执行以下命令来获取信息。lsblk 获取磁盘挂载点,需要拿到这个才能往u盘里写东西。sudo fdisk -l 获取到磁盘列表。
2024-12-05 10:52:24
223
原创 使用SqlSugar对指定字段插入或更新时加密,查询时再解密
这里以Product_Info表的Name字段为例,AESHelper换成自己的加密帮助类。nuget安装SqlSugarCore和SqlSugar.IOC。
2024-12-03 17:43:12
347
1
原创 SqlSugar对已有的未加密sqlite数据库文件进行加密
nuget安装了SqlSugarCore、SqlSugar.IOC、SQLitePCLRaw.bundle_e_sqlcipher。操作流程是创建一个新的加密数据库文件,将原来未加密的数据全部导入新的数据库文件内。然后就可以用带密码的连接字符串创建数据库连接了。
2024-12-03 17:32:02
229
原创 SqlSugar记录指定表的修改日志
nuget安装最新的SqlSugarCore和SqlSugar.IOC,后续的所有数据库操作都是用SqlSugar.IOC包的DbScoped.SugarScope,我没有自己去管理数据库访问的对象。每次对Product_Info进行插入或者更新的时候执行以下记录日志,it.AfterData是修改后数据,it.BeforeData是修改前数据,两个都是数组,批量修改时也是只会进入这个方法一次的。首先在全局打开指定表的日志记录,这里以Product_Info表为例。
2024-12-03 17:26:42
301
原创 .netcore使用Selenium+PhantomJS
nuget安装Selenium.WebDriver和Selenium.WebDriver.ChromeDrive。
2023-10-10 10:03:41
229
1
原创 在win7上将.netcore程序以服务的方式运行
微软官网上没法下载了,贴一个我上传的:https://download.youkuaiyun.com/download/qq_42002856/88241372?下载地址:https://www.catalog.update.microsoft.com/Search.aspx?下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?这里使用nssm,下载地址:https://nssm.cc/download。二、安装win7sp1补丁kb976932。
2023-08-22 17:33:01
1068
1
原创 .netcore使用中间件替换请求body中的字符串
1、允许请求body被多次读取,需要在startup添加2、添加中间件类3、添加use方法的类object4、在startup的Configure添加。
2023-08-17 17:01:40
454
1
用JAVA写的保卫萝卜游戏
2019-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人