前言 简单整理一下Mediator. 正文 Mediator 名字是中介者的意思. 那么它和中介者模式有什么关系呢?前面整理设计模式的时候,并没有去介绍具体的中介者模式的代码实现. 如下: https://www.cnblogs.com/aoximin/p/13600464.html 之所以没写代码就是因为它现在是一种思想,以前的简单的已经很难满足我们现在开发的需求了. 那么看下Mediator 是如何做的吧. Mediator 这个服务,是如何让我们的命令查询职责分离的. 首先安装一下包: M…
前文 前面整理了仓储层,工作单元模式,同时简单介绍了一下mediator. 那么就mediator在看下领域事件启到了什么作用吧. 正文 这里先注册一下MediatR服务: // 注册中间者:MediatR services.AddMediatRServices(); 具体注册: /// <summary> /// 注册 ??? /// </summary> /// <param name="services"></param> ///…
前言 简单介绍一下异常中间件的使用. 正文 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } 这样写入中间件哈,那么在env环境下就会去执行UseDeveloperExceptionPage. public static IApplicationBuilder UseDeveloperExceptionPage(this IApplicationBuilder app) { if (app == null) { throw…
前言 简单整理一下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…
前言 简单整理一下静态中间件. 正文 我们使用静态文件调用: app.UseStaticFiles(); 那么这个默认会将我们根目录下的wwwroot作为静态目录. 这个就比较值得注意的,可能刚开始学.net core 的小伙伴,会直接把脚本写在更目录script这样是访问不到的. 当然了,你可以配置参数.可以给UseStaticFiles传递参数.不过建议不要这么干,因为这是一种默认的约定. 在wwwroot下建立一个index.html,那么访问http://localhost/index.…
前言 简单整理一下缓存. 正文 缓存是什么? 缓存是计算结果的"临时"存储和重复使用 缓存本质是用空间换取时间 缓存的场景: 计算结果,如:反射对象缓存 请求结果,如:DNS 缓存 临时共享数据,如:会话存储 热点访问内容页,如:商品详情 热点变更逻辑数据,如:秒杀的库存数 缓存的策略: 越接近最终的数据结构,效果比较好 缓存命中率越高越好,命中率低意味着空间的浪费. 缓存的位置: 浏览器中 反向代理服务器中(nginx) 应用进程内存中 分布式存储系统中(redis) 缓存实现的要点…
前言 前文提及到了当我们的配置文件修改了,那么从 configurationRoot 在此读取会读取到新的数据,本文进行扩展,并从源码方面简单介绍一下,下面内容和前面几节息息相关. 正文 先看一下,如果文件修改,那么是否有一个回调函数,可以回调呢? 答案是有的: IChangeToken IConfiguration.GetReloadToken() 这里演示一下: IConfigurationBuilder builder = new ConfigurationBuilder(); build…
前言 简单介绍一下重定向攻击. 正文 攻击思路: 看着上面挺复杂的,其实是一些很简单的步骤. 攻击者通过某些手段,让用户打开了一个好站点,打开的这个地址里面带有重定向信息,重定向信息就是自己伪造的站点. 这是因为我们一般不知道网站从哪个页面而来,登录后会返回伪造的站点,也就是我们的后台会利用重定向信息. 然后用户就输入了正确的账户密码,然后重定向到伪造的站点,这个伪造的站点也是一个登录页面,和真实站点一模一样. 这个时候用户以为自己账户密码输入错误,然后再输入一遍,这个时候攻击者就拿到了用户的账…
前言 本来想整理到<<重新整理.net core 计1400篇>>里面去,但是后来一想,整理 .net core 实践篇 是偏于实践,故而分开. 因为是重新整理,那么就从配置开始整理.以下只是个人理解,如有错误,望请指点谢谢. 正文 在我们创建好一个应用的时候,那么出现在我们视野的是一个这样的东西: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Buil…