取消

httpclient下载文件

httpclient下载文件 上代码 private async Task<string> DownLoadFileAsync(string url) { var handler = new HttpClientHandler() { UseCookies = true }; var client = HttpClientFactory.Create(...

webApi返回文件流

webApi返回文件流 定义返回结果 [DataContract] public class FileStreamResult : IHttpActionResult { readonly Stream _stream; readonly string _mediaType; readonly string _fileName; public F...

Luhn算法

Luhn算法(Luhn algorithm),也称为“模10”(Mod 10)算法,是一种简单的校验和算法,一般用于验证身份识别码,例如发卡行识别码、国际移动设备辨识码(IMEI),美国国家提供商标识号码,或是加拿大社会保险号码。该算法由IBM科学家Hans Peter Luhn创造,专利于1954年1月6日申请,1960年8月23日颁证,美国专利号2950048。 该算法现已属于公有领域并...

使用smtp发送邮件

使用qq邮箱授权码发送邮件,避免密码泄露 引用发送邮件包 <package id="MailKit" version="2.7.0" targetFramework="net472" /> <package id="MimeKit" version="2.8.0" targetFramework="net472" /> 发送邮件 static asy...

vue本地路由获取不到参数问题

在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前面去了,然后使用route.query就获取不到参数了 问题 在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前...

Asp.Net WebApi在swagger中添加版本控制

在Asp.Net WebApi中添加版本控制,同时在swagger中按版本显示接口 引用版本控制包 <package id="Microsoft.AspNet.WebApi.Versioning" version="4.0.0" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi.Ver...

CallerMemberName(转载)

原文链接 从 .NET Framework 4.5 开始,有了几个快速获取调用方信息的 Attribute。 Attribute 描述 CallerMemberName 允许您打算调用方的方法或属性名称传递给方法。 CallerLineNumber ...

Swagger过滤指定的api显示

在swagger显示的api文档中,隐藏指定的api 实现过滤类 Asp.Net版本 public class SwaggerDocumentFilter : Swashbuckle.Swagger.IDocumentFilter { public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaR...

msbuild生成文件

msbuild生成项目使用的命令文件 test.msbuild <Project> <ItemGroup> <BuildArtifactsDir Include="BuildArtifacts\" /> <SolutionFile Include="\test.sln" /> <NUnitConso...

vue添加手势操作

在开发手机web页面时希望我的网页也可以像App一样可以左右滑动进行操作。如果你也和我的想法一样,你就可以复制我的代码了,一天的工作量又可以划水7小时。 方案一(不推荐了,有坑,表现为:如果页面有滚动条,并且添加了v-hammer:swipe.right,页面无法滚动) 使用基于vue封装的vue2-hammer 安装包 npm install vue2-hammer ...

vant增加全局遮罩层

vant默认提供的加载遮罩太水了,也可能是我太水了不会用,所以找大神写了一个,我抄过来了 增加遮罩控件 在任意位置增加如下两个文件,注意loadingIndex.js引用loading.vue时路径要修改成你的: 模板文件:loading.vue <template> <div> <van-overlay :sho...

vant上传文件到后端

最近在做手机版页面,采用的vant框架,这个上传控件和以前用iview、element有点不一样,iview、element都是直接提供后端接口文件会自动发送到后端,vant需要自己负责发送文件到后端,对于我这种面向百度编程人员还是有点难度。特意记一下,能帮到其他面向百度编程人员 代码 很简单,基本是使用文件构建FormData参数,如下: html代码 <van-upl...

Abp_vue修改客户端地址

客户端地址定义在ts文件src\lib\url.ts中,每次发版时都要修改地址,如果不修改成配置的地址signalR就获取不到js文件,连接不上。 实现 把url地址定义到不打包的js文件中去,这样就可以在发布后也能修改地址,因为abp.js就是原样输出的,我就直接定义到这个abp上了,免得还要再去配置js文件,还有加载顺序问题。 修改src\lib\abp.js文件 ...

Abp_配置跨域为*通配符时报跨域请求错误

当配置跨域域名为*时,signalr链接报错 问题 像这样配置: 然后在浏览器调试窗口中就会看到如下错误: 解决 解决方式应该有两种:第一种是修改服务端跨域配置为自己判断;第二种是修改前端不使用cookie,但是这样会有新的问题就是无法支持负载均衡。我采用第一种,因为第二种要修改abp源码并自己发布js包。 使用SetIsOriginAllowed代替...

abp集成IdentityServer4和单点登录

在abp开发的系统后,需要使用这个系统作单点登录,及其他项目登录账号依靠abp开发的系统。在官方文档上只找到作为登录服务Identity Server Integration,但是host项目却无法使用登录服务生成的Token获取数据。所有的搜索结果包括abp的issue都是说去看identity server4的文档。我比较笨,文档看了还是不会。好在最后还是试出来了。 创建登录中...

2020-01-09-RSA加解密

RAS加解密帮助类,不记得哪里抄的了 IRSAManager public interface IRSAManager { /// <summary> /// 生成私钥 /// </summary> /// <returns>私钥base64字符串</returns> string Creat...

Vue+abp增加三级菜单

原生vue版的abp只支持2级菜单,项目需要增加成3级菜单,一番搜索。成果如下 增加3级菜单显示 修改components->shrinkable-menu->components->sidebarMenu文件,增加一级菜单,并增加两个方法hasChildren和getChildren,避免html因为没有children属性报错 <template&g...

abp部分接口转换为首字母大写返回

在对接手机端app接口时,由于手机端需要返回的模型使用首字母大写的形式,abp(asp.net core)接口默认返回的数据是驼峰命名法,就是首字母小写,我们自己的pc网页端又是使用的驼峰法,所以不能直接改mvc的配置,这样pc端所有的接口都要改。有同学是用的给字段指定json序列化名称: [JsonProperty("Id")] public Guid Id { get; set; ...

Vue+abp树形表格

项目中需要用到树形表格,其他同学找了一个ZkTable,我也就跟着用了,不太好用,有更好的记得联系我。先说下缺点,如果这些不能满足你,后面也没必要看了。 缺点如下(也可能我不会用,如果你会一定记得告诉我): 第一列不能使用模板数据,必须是简单的属性字段,也就不能使用自定义html标签了,如果你用了,不好意思,整个数据显示不出来 单选没有高亮(根本没有单选?),反正我用的多选框代替单...

abp替换IRepository默认注入类型

如果要想重写部分方法,但是又没有实现自定义仓储,就必须从项目的抽象仓储入手,就是继承自EfCoreRepositoryBase的XXXRepositoryBase<TEntity, TPrimaryKey>和XXXRepositoryBase。 实现方法 去掉abstract关键字,把XXXRepositoryBase<TEntity, TPrimaryK...

abp_vue导入导出excel

后端abp,前端vue导入excel,开始准备用直接用npoi,觉得要写太多的代码,就算从以前的复制粘贴也麻烦,所以偷懒直接用别人的轮子Magicodes.IE。这样可以节省很多工作,根据实体生成excel模板、支持枚举、导入时自动验证数据是否合法(必填、类型等) Excel模板 要导入首先要有录入数据的excel模板,以前都是把模板做好,放到服务器上,给一个下载链接给用户下载,...

vue(abp)使用自定义指令实现按钮(任意元素)权限过滤

在使用vue(后端abp)开发中,需要根据权限对按钮进行显示隐藏,问下了公司大神(开发过angular的,可以使用自定义指令),vue应该也有对应的方式,毕竟天下代码差(一)不(大)多(抄); 添加自定义指令 在main.ts中添加如下自定义指令 Vue.directive('role', { inserted: function (el,binding) { //...

vue使用watch没有效果

今天使用vue监控属性改变的时候遇到watch没有触发,记一下 问题 使用watch监控类中变量的属性值(timeSet)或属性(uploadSetInfoList),timeSet值没有绑定到页面,在代码中改变timeSet值时,都无法触发watch的方法,但是监控其他值(绑定到页面的),如果在页面改变值触发了watch方法后再在代码中改变值就能触发watch方法了,如果没有在...

实现通用IEqualityComparer比较器

在使用Linq做两个列表的集合运算时(交集、并集、差集),如果不是使用对象比较而是要用部分属性比较,需要用到比较器(如果没有比较器则会直接比较对象引用),但是(垃圾)微软没有提供默认的比较器。 问题 每次比较一个类型都需要对类型实现比较器,有没有可以像写lambda表达式一样直接比较呢 解决 namespace System.Collections.Generic { ...

使用Ionic打包网页成App并识别二维码

以前介绍过我们系统需要扫描识别二维码 手机浏览器调用摄像头扫码 网站搜索框使用微信扫码 但是使用手机浏览器调用摄像头扫码的体验实在太差了,需要先拍照,还要拍的很清晰,稍微抖了一下就识别不了,这个坑挖下了,自然的填上。今天就是填坑来了,主要是使用ionic把网页打包成app,通过js使用ionic的插件来调用摄像头扫码。 开始吧。 开发网页 开发手机版网页,没有手机版的可以用...

网站搜索框使用微信扫码

背景 客户要求可以直接识别标签二维码对某些仪器设备进行管理,类似于淘宝搜索框可以直接拍照搜索商品一样。前面已经做了一个网页调用摄像头识别二维码的功能,此功能有两个缺陷: 识别需要先拍照,不能直接识别 识别率低,尤其是拍照抖动,二维码内容稍微多一点或二维码小一点就识别不了。 以上两点相加就相当不好用了。 使用微信扫码 鉴于我们的系统已经集成到了微信公众号,所以准备...

手机浏览器调用摄像头扫码

基本是按这个做的h5端呼起摄像头扫描二维码并解析,就不重复介绍了。只是重新压缩了下qrcode.lib.min.js文件,因为这个文章附带的原文件总是出现识别不了的情况,所以我从新打包了下jsqrcode 下载地址,只是重新压缩了jsqrcode,你们可以自己压缩

Linq查询连接guid与varchar字段

使用场景 在数据库设计中进场会出现一些通用表,如通用附件表,一般都是通过ForeignTable(关联的表名)和ForeignKey(关联表的主键)与其他表关联。这样的表在数据库中没有外键关系,而且一般ForeignKey的类型是varchar,为了兼容其他表的主键可能不一样。这样在Linq查询的时候就不能直接关联了,如下代码会编译不通过: from a in db.Workfl...

Vue+abp微信扫码登录

最近系统中要使用微信扫码登录,根据微信官方文档和网络搜索相关文献实现了。分享给需要的人,也作为自己的一个笔记。后端系统是基于ABP的,所以部分代码直接使用了abp的接口,直接拷贝代码编译不通过。 注册微信开放平台账号 在微信开放平台注册,注意是开放平台不是公众平台,这里需要300元,然后申请网站应用。审核通过后获取到AppID和AppSecret以及登记的网站url。只有此url...

使用公钥访问码云

1.本地进入.ssh查看是否存在密钥对:xxx和xxx.pub 命令:cd ~/.ssh 2.如果不存在,使用ssh-keygen来创建 命令:ssh-keygen -t rsa -C “youremail@youremail.com” 例如:ssh-keygen -t rsa -C “wanwan5856@163.com” 注解: Enter file in which to sa...