随笔分类 -  ASP.NET Core

摘要:Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Paramete 阅读全文
posted @ 2024-01-30 15:08 算盘 阅读(27) 评论(0) 推荐(0) 编辑
摘要:在使用EFCore生成数据库的时候,报上面的错误! 解决方法: 加(Encrypt=True;TrustServerCertificate=True;)即可: "ConnectionStrings": { "DefaultConnection": "Data Source=LAPTOP;Initia 阅读全文
posted @ 2024-01-13 16:29 算盘 阅读(81) 评论(0) 推荐(0) 编辑
摘要:RESTful约束,如果在一个控制器里面有多个Get、Post...的操作1、在一个控制器里面可以定义多个API方法2、通过路由规则来区分 /// <summary>/// 获取用户信息/// </summary>/// <param name="user"></param>/// <returns 阅读全文
posted @ 2023-08-14 16:18 算盘 阅读(27) 评论(0) 推荐(0) 编辑
摘要:1、新建RouteConventio.cs文件 /// <summary> /// 全局路由前缀配置 /// </summary> public class RouteConventio:IApplicationModelConvention { /// <summary> /// 定义一个路由前缀 阅读全文
posted @ 2023-07-22 21:36 算盘 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1、在程序里面建立一个ApiVersions.cs文件,用来设置版本 public enum ApiVersions { /// <summary> /// 版本一 /// </summary> V1, /// <summary> /// 版本二 /// </summary> V2, /// <su 阅读全文
posted @ 2023-07-20 18:32 算盘 阅读(38) 评论(0) 推荐(0) 编辑
摘要:1、贫血模型一个类中只有属性或者成员变量,没有方法2、充血模型一个类中既有属性、成员变量,也有方法 阅读全文
posted @ 2023-03-03 13:36 算盘 阅读(48) 评论(0) 推荐(0) 编辑
摘要:JWT(Json Web Token)1、JWT把登录信息(也称作令牌)保存在客户端,而非服务器端,天然适合分布式系统2、为了防止客户端的数据造假,保存在客户端的令牌经过了签名处理,而签名的密钥只有服务器端才知道,每次服务器端收到客户端提交过来的令牌的时候都要检查一下签名3、签名保证了客户端无法数据 阅读全文
posted @ 2023-02-05 10:09 算盘 阅读(63) 评论(0) 推荐(0) 编辑
摘要:标识(Identity)框架1、标识(Identity)框架:采用基于角色的访问控制(Role-Based Access Control,简称RBAC)策略,内置了对用户、角色等表的管理以及相应的接口,支持外部登录、2FA等2、表示框架使用EF Core对数据库进行操作,因此标识框架支持几乎所有数据 阅读全文
posted @ 2023-01-18 14:08 算盘 阅读(32) 评论(0) 推荐(0) 编辑
摘要:中间件是ASP.NETCore的核心组件,MVC框架、相应缓存、身份验证、CORS、Swagger等都是内置中间件 中间件的三个概念Map、Use和Run。Map用来定义一个管道可以处理哪些请求Use和Run用来定义管道,一个管道由若干个Use和一个Run组成,每个Use引入一个中间件,而Run是用 阅读全文
posted @ 2023-01-08 15:06 算盘 阅读(54) 评论(0) 推荐(0) 编辑
摘要:什么是FILTER1、切面编程机制,在ASP.NETCore特定的位置执行我们自定义的代码2、ASP.NETCore中的Filter的五种类型:Authorization filter、Resource filter、Action filter、Exception filter、Result fil 阅读全文
posted @ 2023-01-02 21:48 算盘 阅读(20) 评论(0) 推荐(0) 编辑
摘要:分布式缓存服务器1、常用的分布式缓存服务器有Redis、Memcached等2、.NET Core中提供了统一的分布式缓存服务器的操作接口IDistributedCache,用法和内存缓存类似3、分布式缓存和内存缓存的区别:缓存值的类型为byte[],需要我们进行类型转换,也提供了一些按照strin 阅读全文
posted @ 2022-12-29 10:20 算盘 阅读(36) 评论(0) 推荐(0) 编辑
摘要:内存缓存1、把缓存数据放到应用程序的内存。内存缓存中保存的是一系列的键值对,就像Dictionary类型一样 2、内存缓存的数据保存在当前运行的网站程序的内存中,是和进程相关的。因为在Web服务器中,多个不同网站时运行在不同的进程中的,因此不同网站的内存缓存是不会互相干扰的,而且网站重启后,内存缓存 阅读全文
posted @ 2022-12-02 15:18 算盘 阅读(164) 评论(0) 推荐(0) 编辑
摘要:对于方法都是线程安全的类型,一般使用单例。对于对象依赖了处理上下文,或者使用了有限资源(如数据库连接),一般使用Scoped或者Transient。Scoped、Transient的区别是你在同一个上下文中是否期望使用同一个实例,如果是,用Scoped,反之则使用Transient 阅读全文
posted @ 2022-11-03 09:44 算盘 阅读(25) 评论(0) 推荐(0) 编辑
摘要:捕捉URL占位符1、在[HttpGet]、[HttpPost]等中使用占位符,比如{schoolName},捕捉路径中的内容,从而公Action方法的参数使用/Students/GetAll/school/MIT/class/A001[HttpGet("school/{schoolName}/cla 阅读全文
posted @ 2022-10-29 11:05 算盘 阅读(98) 评论(0) 推荐(0) 编辑
摘要:1、Action方法既可以同步也可以异步2、异步Action方法的名字一般不需要一Async结尾3、Web API中Action方法的返回值如果是普通数据类型,那么返回值就会默认被序列化为Json格式4、Web API中的Action方法的返回值同样支持IActionResult乐心,不包含类型信息 阅读全文
posted @ 2022-10-15 14:44 算盘 阅读(112) 评论(0) 推荐(0) 编辑
摘要:1、控制器上[Route("[controller]/[action]")]2、强制要求控制器中不同的操作用不同的方法名3、把[HttpGet]、[HttpPost]、[HttpDelete]、[HttpPut]等添加到对应的操作方法上注意:如果控制器中存在一个没有添加[HttpGet]、[Http 阅读全文
posted @ 2022-10-08 10:11 算盘 阅读(22) 评论(0) 推荐(0) 编辑
摘要:HTTP传递参数的三种方式1、URL:适合定位;长度有限2、QueryString:灵活;长度有限3、请求报文体:灵活;长度不限制;不支持GET、DELETE URL:资源定位QueryString:URL之外的额外数据请求报文体:供PUT、POST提供数据 阅读全文
posted @ 2022-10-01 10:14 算盘 阅读(118) 评论(0) 推荐(0) 编辑
摘要:REST:按照HTTP的语义来使用HTTP协议1、URL用于资源的定位:/user/888、/user/888/orders2、HTTP谓词:GET、POST(新增)、PUT(整体更新)、DELETE、PATCH(局部更新)等3、什么是"幂等",举例?DELETE、PUT、GET是幂等的,POST不 阅读全文
posted @ 2022-09-21 18:15 算盘 阅读(27) 评论(0) 推荐(0) 编辑
摘要:分页的实现1、Skip(3).Take(8)最好显示指定排序规则(Skip跳过几条数据,Take获取几条数据)2、需要知道满足条件的数据的总条数:用IQueryable的复用LongCount和Count3、页数:long pageCount = (long)Math.Ceiling(count * 阅读全文
posted @ 2022-09-16 21:26 算盘 阅读(228) 评论(0) 推荐(0) 编辑
摘要:为什么需要外键属性1、EF Core会在数据表中建外键列2、如果需要获取外键列的值,就需要做关联查询,效率低3、需要一种不需要Join直接获取外键列的值的方式 设置外键属性1、在实体类中显示声明一个外键属性2、关系配置中通过HasForeignKey(c=>c.XXX)指定这个属性为外键3、除非必要 阅读全文
posted @ 2022-09-03 09:42 算盘 阅读(112) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示