Skip to main content

Server实现

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:21:55

我们前面一章学习了.Net的Host的设计和描述了怎么样基于Host这个概念来开始一个ASP.net Core的应用该如何配置,我们在这一章先回顾一下: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHos

Read more

中间件- Middleware

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:18:05

什么是中间件(Middleware)? 中间件是一种装配到应用管道里处理请求和回应的软件,每个中间件组件都需要: 选择是否在管道里传递请求到下一个中间件组件中。 可以在调用下一个中间件组件之前或者是之后运行相应的代码,完成相应的任务. 在ASP.net Core框架中,请求委托(Request delegate)用来设计应用的管道(App pipeline), 任何一个HTTP请求都从应用管道处理过。ASP.net Core使用三个扩展方法来配置请求委托: use扩展方法 Run扩展方法 Map扩展方法 任何一个请求委托可以指定未一个匿名的方法,或者是一个可重用的类,这个匿名方法或者可重用的类,在这里我们就称为- 中间件,或者中间件组件。中间件负责在应用管道中决定是否将

Read more

依赖服务注入(DI)

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:14:16

我们前两章学习了如何使用ASP.net Core的Startup类,本章我们继续学习依赖服务注入的概念,这个也就是我们常说的DI, 还有另外一个词我们也经常提及,那就是IoC - 控制反转。很多同学在学习到这两个概念的时候,可能经常会有些莫名其妙,IoC和DI到底有什么联系和区别?这两个概念有人说是一回事,实际上这个理解是大错特错,个人认为正确的理解应该是:IoC是目的,而且DI是实现IoC的手段。所谓的控制反转实际的目的是将流程委托给应用程序的框架,也就是将控制交给框架,然后由框架使用一定的技术,方便用户以这些技术或者接口扩展该框架的功能,实际上也就是将某些场景的流程控制功能模块化交由框架来实现,留出接口来方便用户控制和扩展,这就是IoC的设计目的,而DI就是实现这个目的的技术之一,也是目

Read more

使用IHostingStartup从外部库或者包添加功能或者配置

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:11:11

我们前一章学习了ASP.net Core的Startup类,在前一章我们提及了利用IHostingStartup接口从外部的库或者包给现有的应用添加新的功能或者配置, 我们本节来介绍和学习一下这个功能。 IHostingStartup接口定义 我们先看一下接口IHostingStartup接口的定义: public interface IHostingStartup { public void Configure(IWebHostBuilder); } 从接口的定义可以看到该接口仅仅只有一个方法Configure, 参数是IWebHostBuilder。 外部库或者类定义的一般步骤 要给其他应用提供在初始化的时候添加配置,需要定义一个库或者不带应用入口的控制台

Read more

Startup类概述

分类:  Asp.net Core入门 标签:  #Asp.Net core基础 #基础 #Web 发布于: 2023-06-04 20:08:02

写在这个系列的前面,我购买了蒋金楠的书《ASP.net Core 3框架揭秘》这套书分为上下两册,在学习这套书之前我浏览了一遍这套书的内容,这套书的基本架构和微软的官方文档大致相同,主要是作为框架ASP.net Core的基本架构组件的学习,应该说结合微软的官方文档是一个非常好的补充,但是非常可惜的是,当我开始认真的阅读这套书时,我发现这套书的有些内容确实不错,但是阅读到一定的地方我不得不跳过很多内容,主要原因是书的组织上还是有些问题的,另外作者技术水平不用怀疑,但是作者的写作水品是真的有值得提高的地方,虽然这套书的阅读对象肯定不是初入门者,但是书里很多内容立意也是向从易到难,从代码到设计详细的讲清楚,但是很可惜,这方面我认为作者真的要提高,很多内容看了一下就很难看下去。很多知识其实不用这么

Read more

使用客户端凭证保护API

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #OpenId Connect #Identity Server #OAuth2 发布于: 2023-05-27 22:58:10

本教程演示了使用客户端凭证保护API,你可以参考源码: 本节教程源码 准备工作 我们需要使用IdentityServer4提供的模板,使用如下的命令安装模板 dotnet new -i IdentityServer4.Templates 安装好模板之后,即可以在创建项目的时候应用模板 新建ASP.net Core应用,并设置IDS4 我们先创建好项目需要使用的目录结构 md quickstart cd quickstart md src cd src dotnet new is4empty -n IdentityServer 创建完成后请仔细检查新建的目录结构,需要注意的是该模板创建了一个用于配置I

Read more

Identity Server和Asp.net Core Identity集成

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #Identity Server #OpenId Connect #OAuth2 发布于: 2023-05-27 22:53:49

IdentityServer4被设计成可以和各种其他的数据库进行集成,我们前一篇讲解了如何和EF Core支持的关系型数据库进行集成,我们本节讲解如何和ASP.net Core Identity进行集成。 本系列的源代码都可以从如下的链接找到: Demo Source Code 关于本系列的文章您可以从下述列表找到: 本节我们会使用新的模板创建一个基于ASP.net Core Identity的IdentityServer的项目,因此我们前面的IdentityServer项目不再使用。我们会创建一个新的,这个新的IdentityServer项目会使用Identity库的数据库,登录,登出界面等等。如果您不熟悉Identity, 您可以参考我之前的文章,文章有讲述Identit

Read more

使用EF Core支持的数据库来存储Identity Server4的配置

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #Identity Server #OpenId Connect #OAuth2 发布于: 2023-05-27 22:50:25

我们前面的例子中在项目IdentityServer中都是使用一个config类来定义资源和scope, 以及客户端,但是在实际的应用中,我们可能需要更加方便的管理资源,scope以及客户端的形式,例如可以有一个界面允许客户端自己注册并生成security来使用QAuth2.0或者openIDConnect, 因此对于IdentityServer4来说我们需要一些其他的方法动态的配置这些参数。 IdentityServer4提供EF Core的支持,从而将这些配置放到数据库中进行保存。 EF Core的支持中分为两块,一块是对于配置的保存,另外一块是对一些中间运行的数据进行保存,例如生成的key等等。 IdentityServer4.EntityFramework 在is4中我

Read more

Identity Server和SPA应用交互

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #Identity Server #OpenId Connect #OAuth2 发布于: 2023-05-27 22:47:53

本节的内容是接着前面界面的内容的,如果您在学习本节的时候遇到了困难,请参考前面几节的内容,另外本教程的源代码均可以从如下链接下载: Demo Code 本节我们来学习客户端应用如何使用openId Connect进行验证,登录以及授权,我们这里的客户端应用主要是以SPA类型的程序作为演示,为了方便,本节使用javascript的客户端应用来演示。 该实例的代码请参考Demo项目中的JavaScriptClient代码:用户在javascript页面上点击登录按钮,会跳转至identityserver4登录,登录成功后返回到javascript客户端,点击javascript页面上的CallAPI按钮会调用api,并返回结果,点击退出登录,即返回到JavascriptClient

Read more