背景#
最近在徒手造轮子,编写一个ASP.NETCore的日志监控器,其中用到了自定义中间件读取Request.Body和Response.Body的内容,但是编写过程,并不像想象中的一帆风顺,ASP.NETCore针对Request.Body和Response.Body的几个特殊设计,导致了完成以上功能需要绕一些弯...…
今天来看一下asp.netcore的执行管道。先看下官方说明:
从上图可以抛光,asp.netcore的执行顺序是,当收到一个请求后,request请求会先经过已注册的中间件,然后会进入到mvc的拦截器管道:
进入mvc管道后,根据以上顺序执行过滤校正。
OK,根据以上说明下面我们新建一个MVC的演示,...…
前言
写这篇文章的目的是希望像我一样喜欢.net的人在发布core到iis上时少走点弯路
网上找了些资料,其实实际操作比较简单,就是有几个坑很恶心
踩坑记录
首先是你的服务器需要有core的运行环境,安装前先关闭iis
dotnet-hosting-3.1.4-win.exe可以去微软的官网找最新的版本(去微软的官网找...…
前言
Attribute(特性)的概念不在此赘述了,相信有点.NET基础的开发人员都明白,用过Attribute的人也不在少数,毕竟很多框架都提供自定义的属性,类似于Newtonsoft.JSON中JsonProperty、JsonIgnore等
自定义特性
.NET框架允许创建自定义特性,用于存储声明性的信息,且可在...…
Asp.NetCore中虽然集成了许多常用的身份认证,但很多时候,我们还是需要实现自己的身份认证接口,本文这里就简单的介绍下如何实现自定义身份认证接口。
首先写一个简单的接口。
[Authorize]
[HttpGet]
publicobjectFoo()
{
returnDateTime.Now.ToString...…
昨天有个朋友在微信上问我一个问题:他希望通过动态脚本的形式实现对ASP.NETCoreMVC应用的扩展,比如在程序运行过程中上传一段C#脚本将其中定义的Controller类型注册到应用中,问我是否有好解决方案。我当时在外边,回复不太方便,所以只给他说了两个接口/类型:IActionDescriptorProvider...…
电脑不想装几十个G的VS2017,那就用VSCode吧
目标:
创建一个类库项目Skany.Core,并用Nuget引用第三方组件Hash实现加密算法
创建一个单元测试项目Skany.Tests,引用类库Skany.Core,并测试其中的方法
创建一个控制台应用程序项目Skany.Output,引用类库Skany.C...…
最近在整理优化.net代码时,发现几个很不友好的处理现象:登录判断、权限认证、日志记录、异常处理等通用操作,在项目中的action中到处都是。在代码优化上,这一点是很重要着力点。这时.net中的过滤器、拦截器(Filter)就派上用场了。现在根据这几天的实际工作,对其做了一个简单的梳理,分享出来,以供大家参考交流,如有...…
依赖倒置原则(DIP)
依赖倒置(DependencyInversionPrinciple,缩写DIP)是面向对象六大基本原则之一。他是指一种特定的的解耦形式,使得高层次的模块不依赖低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象.
该原则规定:
高层次的模块不应该依赖低...…
前言
一次HTTP请求,就是一次标准IO操作。请求是I,是输入;响应式O,是输出。任何web开发框架,其实都是在干这两件事:
接受请求并进行解析获取参数
根据参数进行渲染并输出响应内容
所以我们学习一个框架,我认为最首要的是知道如何从请求中获取参数。http请求携带参数的地方主要有下面几个地方:
URL
Head...…