当前位置: 首页 > news >正文

学校申请建设网站的原因网站开发使用什么软件

学校申请建设网站的原因,网站开发使用什么软件,散热器 东莞网站建设,国际贸易进口代理公司什么是中间件 中间件是ASP.NET Core的核心组件,MVC框架、响应缓存、身份验证、CORS、Swagger等都是内置中间件。 广义上来讲:Tomcat、WebLogic、Redis、IIS;狭义上来讲,ASP.NET Core中的中间件指ASP.NET Core中的一个组件。中间件…

什么是中间件

中间件是ASP.NET Core的核心组件,MVC框架、响应缓存、身份验证、CORS、Swagger等都是内置中间件。

  1. 广义上来讲:Tomcat、WebLogic、Redis、IIS;狭义上来讲,ASP.NET Core中的中间件指ASP.NET Core中的一个组件。
  2. 中间件由前逻辑、next、后逻辑3部分组成,前逻辑为第一段要执行的逻辑代码、next为指向下一个中间件的调用、后逻辑为从下一个中间件执行返回所执行的逻辑代码。每个HTTP请求都要经历一系列中间件的处理,每个中间件对于请求进行特定的处理后,再转到下一个中间件,最终的业务逻辑代码执行完成后,响应的内容也会按照处理的相反顺序进行处理,然后形成HTTP响应报文返回给客户端。
  3. 中间件组成一个管道,整个ASP.NET Core的执行过程就是HTTP请求和响应按照中间件组装的顺序在中间件之间流转的过程。开发人员可以对组成管道的中间件按照需要进行自由组合。

中间件的三个概念

Map、Use和Run。Map用来定义一个管道可以处理哪些请求,Use和Run用来定义管道,一个管道由若干个Use和一个Run组成,每个Use引入一个中间件,而Run是用来执行最终的核心应用逻辑。

中间件的基本使用

此为案例,不推荐这样使用

app.Map("/test", async (appBuilder) =>
{appBuilder.Use(async (context, next) =>{context.Response.ContentType = "test/html";await context.Response.WriteAsync("1 Start<br/>");await next();await context.Response.WriteAsync("1 End<br/>");});appBuilder.Use(async (context, next) =>{await context.Response.WriteAsync("2 Start<br/>");await next();await context.Response.WriteAsync("2 End<br/>");});appBuilder.Run(async context =>{await context.Response.WriteAsync("Run<br/>");});
});

中间件类

简单的自定义中间件

  1. 如果中间件的代码比较复杂,或者我们需要重复使用一个中间件的话,我们最好把中间件的代码放到一个单独的“中间件类”中。
  2. 中间件类是一个普通的.NET类,它不需要继承任何父类或者实现任何接口,但是这个类需要有一个构造方法,构造方法至少要有一个RequestDelegate类型的参数,这个参数用来指向下一个中间件。这个类还需要定义一个名字为Invoke或InvokeAsync的方法,方法至少有一个HttpContext类型的参数,方法的返回值必须是Task类型。中间件类的构造方法和Invoke(或InvokeAsync)方法还可以定义其他参数,其他参数的值会通过依赖注入自动赋值。

需求

检查请求中是否有password=123的查询字符串,而且会把请求报文体按照Json格式尝试解析为dynamic类型的对象,并且把dynamic对象放入context.Items中供后续的中间件或者Run使用。

实现

Nuget:Install-Package Dynamic.Json

public class CheckMiddleware
{private readonly RequestDelegate _next;public CheckMiddleware(RequestDelegate next){_next = next;}public async Task InvokeAsync(HttpContext context){//从请求的查询字符串中获取名为password的参数值string password = context.Request.Query["password"];if (password == "123"){//检查请求的内容类型是否为JSONif (context.Request.HasJsonContentType()){//获取请求体的流Stream stream = context.Request.BodyReader.AsStream();//将流中的JSON数据解析为动态对象,并将解析后的对象存入Items集合dynamic obj = await DJson.ParseAsync(stream);context.Items["BodyJson"] =obj;}await _next(context);}else{context.Response.StatusCode = 403;}}
}Program.cs
app.Map("/test", async (appBuilder) =>
{appBuilder.UseMiddleware<CheckMiddleware>();appBuilder.Run(async context =>{dynamic? obj = context.Items["BodyJson"];if (obj != null){await context.Response.WriteAsync($"{obj}");}});
});

http://www.yayakq.cn/news/479011/

相关文章:

  • 怎么在网站视频做字幕网页设计与制作图片显示不出来
  • 音乐网站开发需要什么语言工具建设网站建设什么挣钱
  • 网站开发浏览器兼容性wordpress每篇文章加固定文字
  • 访问网站的过程做公司网站的公司有哪些
  • 手机网站开发设计报价单wordpress企业源码
  • 河南省建设厅网站中级职称深圳住建局官网登录入口
  • 网站建设出现乱码是怎么回事聊城做wap网站哪儿好
  • 微餐饮网站建设比较好百度竞价开户公司
  • 工商做年报网站岳各庄网站建设
  • 网站开发询价方案顺企网企业名录电话
  • html网站设计范例做dapp开发广州
  • 响水企业做网站多少钱seo诊断大夫
  • 模版免费网站架子鼓谱那个网站做的好
  • 网站开发公司业务员培训做证券考试的网站
  • 手机网站做分享到微信公司网站建设多少费用哪儿济南兴田德润联系电话
  • 财务公司网站源码汕头建站模板厂家
  • 珠海网站建易搜互联优质的菏泽网站建设
  • 彩票开奖网站建设河北高端建设网站
  • 给你网站你会怎么做的河南省建设厅网站中州杯
  • 余姚网站建设开发go做网站
  • 做内销的网站推荐网站建设项目设计书
  • dedecms电影网站源码网站备案局
  • net开发网站建设宁波有做网站的地方吗
  • 手机网站制作代理商网络营销中网站建设的策略
  • 网站返回指定位置怎么做建设网站的时候
  • 深圳flash网站建设编辑网站的软件手机
  • 绍兴建设开发有限公司网站个人网站建设的小清新图片
  • wordpress主题 含演示数据库东莞百度推广优化
  • 网站开发选定制还是模板广州公司名称查询
  • 苏州h5网站建设价钱项城市住房和城乡建设局网站