随笔分类 - 02-Asp.Net Core
摘要:一. 前言 1.关于JWT的Token过期问题,到底设置多久过期? (1).有的人设置过期时间很长,比如一个月,甚至更长,等到过期了退回登录页面,重新登录重新获取token,期间登录的时候也是重新获取token,然后过期时间又重置为了1个月。这样一旦token被人截取,就可能被人长期使用,如果你想禁
阅读全文
摘要:一. 总结1 1. IWebHostEnvironment获取常用属性 (1).获取项目的根目录 _env.ContentRootPath 等价于 Directory.GetCurrentDirectory() (2).获取项目下wwwroot目录 _env.WebRootPath (3).获取项目
阅读全文
摘要:一. 前言 1.说明 本章节重点介绍JWT的利用不同程序集的几种写法及认证方式,然后复习一下JWT的组成。 其他概念参考:https://www.cnblogs.com/yaopengfei/p/10451189.html 官网:https://jwt.io 2.JWT组成 样式:"xxxxxxxx
阅读全文
摘要:一. 基本概念 1. 背景 通常我们将 AppSecret 和数据库连接字符串存储在配置文件中,web.config 或 appsettings.json,配置文件都需要提交到SVN 和git上,对于一些开发者自己用而不需要提交的数据, 并不想进行提交,这个时候可以存储到本地机密文件中。 或者一些机
阅读全文
摘要:整体说明:这里主要是借助依赖注入程序,在控制台上获取需要的相关类,然后进行使用对应方法的调用 (1).首先需要添加依赖注入的程序集【Microsoft.Extensions.DependencyInjection】 (2).添加所需组件对应的程序集,并进行Addxxxx (3).创建Provicde
阅读全文
摘要:一. 数据保护 1.控制台步骤 通过Nuget安装数据保护程序集【Microsoft.AspNetCore.DataProtection】和依赖注入程序集【Microsoft.Extensions.DependencyInjection】,详见下面代码,进行数据的protect和unprotect。
阅读全文
摘要:一. 编码解码 1.编码 将信息从一种格式(人能识别)转换成另一种形式(计算机能识别)的过程。 常见的编码:Base64 2.解码 计算机能识别的形式转换成人能识别的形式。 3.字符集和字符编码 (1).字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各
阅读全文
摘要:一 . 客户端IP白名单限制 1.通过中间件检测 新建中间件类AdminSafeListMiddleware,获取白名单ip,通过比较byte值来比较访问的ip是否在白名单中,如果不在,则返回401无权限。 然后在ConfigureService中进行全局拦截app.UseMiddleware<Ad
阅读全文
摘要:一. 基本配置 1. 调试程序如何开启IIS (在vs中) 方法一:创建代码的时候勾选 方法二:手动开启:① 属性→调试→启用SSL ② 在Configure中添加:app.UseHttpsRedirection(); 进行全局拦截。 PS:以上两种方案配置完成后,在vs中访问http请求的地址,会
阅读全文
摘要:1. 说明 BackgroundService 是用于实现长时间运行的 IHostedService 的基类,使用程序集:Microsoft.Extensions.Hosting。 2. 实现方式 继承BackgroundService类,然后override ExecuteAsync这个方法,在这
阅读全文
摘要:一. Core Mvc 1.传统路由 Core MVC中,默认会在 Startup类→Configure方法→UseMvc方法中,会有默认路由:routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); 等价于 app.
阅读全文
摘要:一. 基本概念 1.背景 使用 Web API 时,了解其各种方法对开发人员来说可能是一项挑战。 Swagger 也称为OpenAPI,解决了为 Web API 生成有用文档和帮助页的问题。 它具有诸如交互式文档、客户端 SDK生成和 API 可发现性等优点,目前有两种实现方式: (1).Swash
阅读全文
摘要:一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方法名。 但是我们不喜欢这种方式,所以我们将默认的路由规则 [Route("api/[controll
阅读全文
摘要:一. 背景 1.前世 提到HttpClient,在传统的.Net版本中简直臭名昭著,因为我们安装官方用法 using(var httpClient = new HttpClient()),当然可以Dispose,但是在高并发的情况下,连接来不及释放,socket被耗尽,然后就会出现一个喜闻乐见的错误
阅读全文
摘要:一. 简介 关于Session的原理可参照Asp.Net版本Session的文章,去查阅。 1. 普通用法 (1).通过Nuget引入【Microsoft.AspNetCore.Http】程序集,Core Mvc中已经默认引入了,在哪使用using一下即可。 (2).注入Session相关的服务。
阅读全文
摘要:一. 简介 1. 说明 提到过滤器,通常是指请求处理管道中特定阶段之前或之后的代码,可以处理:授权、响应缓存(对请求管道进行短路,以便返回缓存的响应)、 防盗链、本地化国际化等,过滤器用于横向处理业务,符合Aop思想,它也可以有效的避免代码的重复复制。 在Asp.Net Core中,有5种过滤器,分
阅读全文
摘要:一. 整体说明 1. 说在前面的话 早在前面的章节中,就详细介绍了.Net FrameWork版本下MVC和WebApi的跨域解决方案,详见:https://www.cnblogs.com/yaopengfei/p/10340434.html ,由于在Core版本中,MVC和WebApi已经合并,所
阅读全文
摘要:一. 视图缓存 1.对比与区别 Core中的ResponseCache和老版MVC中的OutputCache定位不一样,OutputCache是缓存在服务器内存中的,所以你给一个视图加上标签, 不管几个客户端(浏览器)访问,只有第一个进方法内,在缓存的有效时间里其他客户端都是从缓存中访问,不进实际方
阅读全文
摘要:一. 整体说明 1. 说明 分布式缓存通常是指在多个应用程序服务器的架构下,作为他们共享的外部服务共享缓存,常用的有SQLServer、Redis、NCache。 特别说明一下:这里的分布式是指多个应用程序服务器,而不是指将Redis或SQLServer部署成分布式集群。 2. 分布式缓存数据有以下
阅读全文
摘要:1. 整体说明 ASP.NET Core 支持多种不同的缓存,最简单的缓存基于 IMemoryCache,它表示存储在 Web 服务器内存中的缓存,内存缓存可以存储任何对象,存储形式键值对,需要 .net standard 2.0 或者 .Net framework 4.5 或更高版本。 本节主要介
阅读全文