目录 前言 基于声明的认证(Claims-based Authentication) 应用场景一 在ASP.NET Core 中Identity是如何实现的 类ClaimsPrincipal 考察另外一个重要的类ClaimsIdentity 在ASP.NET Core Identity中使用 总结 @ 前言 有三个重要的类Claim, ClaimsIdentity, ClaimsPrincipal,我们以一个持有合法证件的学生Bob做比方: ClaimsPrincipal就是持有证件的学生Bob…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Options绑定 上期我们已经聊过了配置(IConfiguration),今天我们来聊一聊Options,中文译为"选项",该功能用于实现以强类型的方式对程序配置信息进行访问. 既然是强类型的方式,那么就需要定义一个Options类,该类: 推荐命名规则:{Object}Options 特点: 非抽象类 必须包含公共无参的构造函数 类中的所有公共读写属性都会与配置项进行绑定 字段…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 模型绑定 什么是模型绑定?简单说就是将HTTP请求参数绑定到程序方法入参上,该变量可以是简单类型,也可以是复杂类. 绑定源 所谓绑定源,是指用于模型绑定的值来源. 先举个例子: [Route("api/[controller]")] public class UserController : ControllerBase { [Route("{id}")] pu…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 通常,身份认证(Authentication)和授权(Authorization)都会放在一起来讲.但是,由于这俩英文相似,且"认证授权"四个字经常连着用,导致一些刚接触这块知识的读者产生混淆,分不清认证和授权的区别,甚至认为这俩是同一个.所以,我想先给大家简单区分一下身份认证和授权. 身份认证 确认执行操作的人是谁. 当用户请求后台服务时,系统首先需要知道用户是谁,是张三.…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 在开始之前,如果你还不了解基于Cookie的身份认证,那么建议你先阅读<基于Cookie的身份认证>后再阅读本文. 另外,为了方便大家理解并能够上手操作,我已经准备好了一个示例程序,请访问XXTk.Auth.Samples.JwtBearer.HttpApi获取源码.文章中的代码,基本上在示例程序中均有实现,强烈建议组合食用! Jwt概述 Jwt是什么 Jwt是一个开放行业标准(RFC75…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 之前,我们已经了解了ASP.NET Core中的身份认证,现在,我们来聊一下授权. 老规矩,示例程序源码XXTk.Auth.Samples已经提交了,需要的请自取. 概述 ASP.NET Core中的授权方式有很多,我们一起了解一下其中三种较为常见的方式: 基于角色的授权 基于声明的授权 基于策略的授权 其中,基于策略的授权是我们要了解的重点. 在进入正文之前,我们要先认识一个很重要的特性--Auth…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 前言 在.NET中,我们有很多发送Http请求的手段,如HttpWebRequest.WebClient以及HttpClient. 在进入正文之前,先简单了解一下前2个: HttpWebRequest namespace System.Net { public class HttpWebRequest : WebRequest, ISerializable { } } HttpWebRequest位于…
理解 ASP.NET Core 处理管道 在 ASP.NET Core 的管道处理部分,实现思想已经不是传统的面向对象模式,而是切换到了函数式编程模式.这导致代码的逻辑大大简化,但是,对于熟悉面向对象编程,而不是函数式编程思路的开发者来说,是一个比较大的挑战. 处理请求的函数 在 ASP.NET Core 中,一次请求的完整表示是通过一个 HttpContext 对象来完成的,通过其 Request 属性可以获取当前请求的全部信息,通过 Response 可以获取对响应内容进行设置. 对于一次请…
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 准备工作:一份ASP.NET Core Web API应用程序 当我们来到一个陌生的环境,第一件事就是找到厕所在哪. 当我们接触一份新框架时,第一件事就是找到程序入口,即Main方法 public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } publi…
<理解ASP.NET Core>基于.NET5进行整理,旨在帮助大家能够对ASP.NET Core框架有一个清晰的认识. 目录 [01] Startup [02] Middleware [03] Dependency Injection [04] Host [05] Options [06] Routing [07] File Server [08] Multiple Environments [09] Logging 未完待续...…