第三方系统如何与阿里商旅进行对接

经过一周半的时间,终于实现了第三方系统对接阿里商旅API,通过将审批通过的差旅申请单同步到阿里商旅,来实现员工先在企业内部系统(比如OA)进行申请,申请通过后,再通过阿里商旅来进行机票、酒店之类的预定这样一个完整的差旅申请流程,因为过程比较曲折,而且如果你打阿里商旅客服电话,对方也会回复目前已不再...

2018-11-29 20:04:57

阅读数:96

评论数:0

【微信卡包发票导入】微信电子发票报销方服务端接入时遇到的那些坑

首先先附上微信电子发票报销方接口列表的官方链接,如果你是.NET开发,那么你可以通过Senparc.Weixin.MP来快速开发相应的微信电子发票功能,该功能在其16.4.0版本开始提供,16.4.9版本修复报销方的bug(修复PR代码由本人提供),16.4.10电子发票原作者又做了一些调整,重新...

2018-10-31 15:43:45

阅读数:81

评论数:0

通过Spire.pdf生成新版税务局监制章

因为国家税务局发文,要求将电子发票上旧的税务局监制章改为新版监制章,按我们当初电子发票的做法,此处部分是将已有的监制章png图片绘制到指定位置,但让美工按税务局行文要求制图后,生成出来的效果怎么预览都不满意,所以就产生了直接在pdf上绘制税务局监制章的想法。 想法很美好,现实很骨感!平面几何知识...

2018-09-30 10:50:17

阅读数:157

评论数:0

ASP.NET Core 如何记录每次响应的Response信息

上一篇文章中我们已经成功的记录了Request部分的信息,现在我们来看下如何记录Response的内容。 相比于Request,Response额外多了个StatusCode,然后内容都是通过Body读取,不过不同于Request.Body的只读,Response.Body是个只写的数据流。 可...

2018-09-26 14:24:35

阅读数:498

评论数:1

ASP.NET Core 如何记录每次请求的Request信息

在NFX中,我们可以很简单的通过DelegatingHandler来记录每次请求的Request和Response部分信息,但在ASP.NET Core中却行不通了,因为在Core中,我们无法使用Handler,只能通过Middleware中间件来捕获请求。 本篇内容基于ASP.NET Co...

2018-09-17 11:01:02

阅读数:1093

评论数:0

老司机翻车记--为什么Session会取不到值

作为一个资深的老司机,用MVC5的WebApi做了个小应用,项目前后端分离,然后需要保持用户登录信息,所以很简单的通过在Global.asax文件中增加相应代码来使WebApi支持Session public override void Init() { ...

2018-08-31 13:56:17

阅读数:395

评论数:0

ASP.NET Core默认注入方式下如何注入多个实现(多种方式)

在我们开发过程中,对于服务来说,一般我们定义interface实现均只存在一个具体实现(有人戏称这种情况为十代单传模式),这时候Core默认的注入方式已经支持我们的需求,但对于某些抽象定义实现来讲,我们可能会有多种具体实现,在项目中,我们可能会按照具体需求选用不同的实现。 首先先具体下我们的业务...

2018-07-30 11:52:44

阅读数:1054

评论数:1

【翻译】在.NET下如何预防XXE注入攻击

接下来关于.NET中XXE注入的内容来自Dean Fleming单元测试的Web站点:https://github.com/deanf1/dotnet-security-unit-tests。该站点覆盖了目前.NET下支持的所有XML解析器,且测试用例均展示了哪些情况下它们对于XXE注入而言是安全...

2018-07-06 10:09:05

阅读数:613

评论数:0

基于MailKit的发送邮件辅助类

MailKit是Net下免费开源的邮箱类库,其github地址为:https://github.com/jstedfast/MailKit一般情况下,MailKit都工作的很好,但可能是姿势不对,在发送附件时,只要附件名为中文名,接收方接收到的附件名必然是乱码或者tcmime.xx.xx.xx.b...

2018-06-15 15:53:40

阅读数:810

评论数:0

ABP天坑--UOW自动保存修改

ABP项目也做了挺久了,实际上也没碰上太多的问题,但这两天被ABP的自动保存修改(Automatically Saving Changes)这个天坑给恶心坏了因为项目设计上的问题,原先为了方便加上环境限制,没有文件服务器来进行文件持久化服务,这样多个系统之间如何共享文件就成了个问题,所以当初设计上...

2018-06-08 15:24:28

阅读数:293

评论数:4

TemplateManager,记录一份失败的代码

Spire.Pdf这个控件应该蛮多需要操作pdf的开发都多少接触过,其标榜免费的版本FreeSpire.Pdf,按其官方声明,也仅仅比商业版多了一些限制,但其实还隐藏性的做了一些其他限制,而其声明中根本没提及的不支持多线程并发操作,恰恰是导致了标题描述的失败代码产生! 先说下使用场景,业务需要按...

2018-05-10 13:55:54

阅读数:139

评论数:0

quartz.net 3.x版本如何通过xml文件进行Job配置

在2.x版本中,我们可以简单的在quartz.config文件中通过以下Xml配置方式来注册相应的Job以及触发器quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz quartz.p...

2018-04-20 11:49:15

阅读数:1223

评论数:0

写烂了的C#获取枚举对应的描述信息

为什么说是写烂了的?这的确是写烂了的,N年就写过,网上一搜更是一大把 既然是写烂了的,为啥还要再写?首先因为网上都是仅仅反射获取,没考虑过额外的增加一个缓存步骤来提高性能;其次网上的也都只是对应特定特性,如果需要再支持其他特性就需要改下代码;最后如果是第三方枚举,本身并没提供任何描述特性,这里也...

2018-04-19 11:37:12

阅读数:201

评论数:1

ASP.NET MVC Core中launchSettings.json修改导致VS2017无法启动IIS Express问题

项目开发往往避免不了与其它系统的交互,而在开发过程中,直接通过VS调试状态与其它项目组成员进行调试也算是比较方便的调试方案(当然一般这也仅仅是内网调试状态),所以就引出了今天这个问题,VS 2017居然无法启动IIS Express! 默认创建一个新的MVC core项目时,在Propertie...

2018-04-02 15:25:36

阅读数:911

评论数:0

C#下如何控制并发运行的Task数量

首先需要说明的是Task不等于Thread,只是微软默认实现ThreadPoolTaskScheduler是依赖于线程池的,因为该类的可访问性为internal,所以我们在实际编码中无法直接在代码中new这么一个Scheduler出来,只能通过TaskScheduler.Default间接的来使用...

2018-03-27 14:18:05

阅读数:4896

评论数:4

Polly善用Context来记录异常发生时的参数信息

Polly是一个.NET弹性和瞬态故障处理库,具体用法可以参考:https://github.com/App-vNext/Polly,此处不会细讲如何使用Polly来进行异常处理或重试,就如标题所说,本篇内容主要为异常发生时除了Exception,又如何获取记录发生异常时你可能关心的数据信息 可...

2018-03-22 17:06:16

阅读数:164

评论数:0

ABP模板含Zero用户角色的项目还原数据库及数据至MySql相关问题记录

ABP是啥这里就不多说了,既然都已经到还原数据库了,肯定对ABP已经有所了解,ABP通过官网创建时目前提供两种方式:ASP.NET MVC 5.x、ASP.NET Core 2.x,这里分别描述ASP.NET MVC 5.x参考地址:https://www.cnblogs.com/LonelyCo...

2018-03-09 16:46:53

阅读数:558

评论数:0

Xml序列化当泛型不同时序列化(反序列化)为不同的Xml节点名称

在我们提供接口服务给第三方调用时,一般会采用Request/Response模式,即请求与响应都采用统一的外部封装,真正的业务数据则由Request/Resonse的某个参数比如Data之类的类进行承担,以Request为例,该请求类假设定义成如下内容: /// /// 数据请求类...

2018-03-07 16:59:29

阅读数:601

评论数:0

C#下对PDF文件进行电子图片签名

能够对pdf进行图片签名的,网上找来找去,就一个iText是免费的,但这个免费是AGPL协议,当然它也有商业协议,iText现在有5和7两个版本,这里我采用的是版本5,nuget下载地址为:https://www.nuget.org/packages/iTextSharp/,然后为了多做比较,我这...

2018-02-07 11:40:49

阅读数:758

评论数:0

C#下实现RSA公钥私钥由pcks8格式(java)转化为pcks1格式(非java)

对于Pcks不了解的可以先看下PKCS标准,然后这里暂时只有pcks8格式转化为pcks1格式,暂时还没能找到直接通过BouncyCastle来转化pcks1格式到pcks8格式的方法或代码(当然可以借由RSACryptoServiceProvider来进行读取,然后再进行间接的转化),只找到了通...

2018-02-01 10:44:01

阅读数:556

评论数:0

提示
确定要删除当前文章?
取消 删除