前文 前面整理了仓储层,工作单元模式,同时简单介绍了一下mediator. 那么就mediator在看下领域事件启到了什么作用吧. 正文 这里先注册一下MediatR服务: // 注册中间者:MediatR services.AddMediatRServices(); 具体注册: /// <summary> /// 注册 ??? /// </summary> /// <param name="services"></param> ///…
前言 简单整理一下Mediator. 正文 Mediator 名字是中介者的意思. 那么它和中介者模式有什么关系呢?前面整理设计模式的时候,并没有去介绍具体的中介者模式的代码实现. 如下: https://www.cnblogs.com/aoximin/p/13600464.html 之所以没写代码就是因为它现在是一种思想,以前的简单的已经很难满足我们现在开发的需求了. 那么看下Mediator 是如何做的吧. Mediator 这个服务,是如何让我们的命令查询职责分离的. 首先安装一下包: M…
前言 简单介绍一下异常中间件的使用. 正文 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } 这样写入中间件哈,那么在env环境下就会去执行UseDeveloperExceptionPage. public static IApplicationBuilder UseDeveloperExceptionPage(this IApplicationBuilder app) { if (app == null) { throw…
前言 简单介绍一下重定向攻击. 正文 攻击思路: 看着上面挺复杂的,其实是一些很简单的步骤. 攻击者通过某些手段,让用户打开了一个好站点,打开的这个地址里面带有重定向信息,重定向信息就是自己伪造的站点. 这是因为我们一般不知道网站从哪个页面而来,登录后会返回伪造的站点,也就是我们的后台会利用重定向信息. 然后用户就输入了正确的账户密码,然后重定向到伪造的站点,这个伪造的站点也是一个登录页面,和真实站点一模一样. 这个时候用户以为自己账户密码输入错误,然后再输入一遍,这个时候攻击者就拿到了用户的账…
前言 简单整理一下静态中间件. 正文 我们使用静态文件调用: app.UseStaticFiles(); 那么这个默认会将我们根目录下的wwwroot作为静态目录. 这个就比较值得注意的,可能刚开始学.net core 的小伙伴,会直接把脚本写在更目录script这样是访问不到的. 当然了,你可以配置参数.可以给UseStaticFiles传递参数.不过建议不要这么干,因为这是一种默认的约定. 在wwwroot下建立一个index.html,那么访问http://localhost/index.…
前言 简单整理一下缓存. 正文 缓存是什么? 缓存是计算结果的"临时"存储和重复使用 缓存本质是用空间换取时间 缓存的场景: 计算结果,如:反射对象缓存 请求结果,如:DNS 缓存 临时共享数据,如:会话存储 热点访问内容页,如:商品详情 热点变更逻辑数据,如:秒杀的库存数 缓存的策略: 越接近最终的数据结构,效果比较好 缓存命中率越高越好,命中率低意味着空间的浪费. 缓存的位置: 浏览器中 反向代理服务器中(nginx) 应用进程内存中 分布式存储系统中(redis) 缓存实现的要点…
前言 在当今在互联网微服务比较适用的情况下,docker 可以说一个利器.每次我们打包docker的时候都是适用docker 的配置文件,那么配置文件里面会设置环境变量,这个时候需要我们的应用能够识别到这些环境变量并作出相应的选择. 适用场景: docker 运行环境 k8s 运行环境 因为他们都是隔离机制的,故而环境变量能够发挥其非常好的作用. 正文 引入:microsoft.extensions.configuration.environmentVariables 这个包. 设置环境变量:…
前言 简单整理一下cookie的跨站攻击,这个其实现在不常见,因为很多公司都明确声明不再用cookie存储重要信息,不过对于老站点还是有的. 正文 攻击原理: 这种攻击要达到3个条件: 用户访问了我们的站点. 用户通过cookie存储和传递身份信息 用户访问了坏站点 1和3根本控制不了,那么控制的就只有2,就是不使用cookie. 但是有些站点改动太大,那么是否还有其他方式呢? 防御方式: 不使用cookie存储和传输身份认证 使用antiforgerytoken,anti-forgery 防伪…
前言 前文已经提及到了endponint 是怎么匹配到的,也就是说在UseRouting 之后的中间件都能获取到endpoint了,如果能够匹配到的话,那么UseEndpoints又做了什么呢?它是如何执行我们的action的呢. 正文 直接按顺序看代码好了: public static IApplicationBuilder UseEndpoints(this IApplicationBuilder builder, Action<IEndpointRouteBuilder> configu…
前言 本来想整理到<<重新整理.net core 计1400篇>>里面去,但是后来一想,整理 .net core 实践篇 是偏于实践,故而分开. 因为是重新整理,那么就从配置开始整理.以下只是个人理解,如有错误,望请指点谢谢. 正文 在我们创建好一个应用的时候,那么出现在我们视野的是一个这样的东西: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Buil…