ASP.NET核心中间件设置教程(7)
Asp。Net核心中间件
在本章中,我们将学习如何设置中间件。中间件技术控制我们的应用程序如何响应ASP.NET核心的HTTP请求。它还可以控制应用程序的异常错误,这是如何验证和授权用户执行特定操作的关键。
中间件是组装到应用程序管道中的软件组件,用于处理请求和响应。每个组件可以选择是否将请求传递给管道中的下一个组件,并且可以在管道中的某些操作之前和之后执行任务。请求委托用于构建请求管道。请求委托用于处理每个HTTP请求。每个中间件都是ASP.NET核心中的一个对象,每个中间件都有一个非常具体、专用、有限的功能。最终,我们需要大量的中间件来为应用程序提供适当的行为。现在让我们假设我们想要将每个请求记录到我们的应用程序中。
在这种情况下,我们在应用程序中安装的第一个中间件是日志组件。这个日志程序可以看到所有传入的请求,然后中间件只是记录一些信息,然后将请求传递给下一个块中间件。
中间件作为一系列组件出现在这个处理管道中。我们安装到应用程序中的下一个中间件是授权组件。组件可能正在寻找特定的cookie或访问HTTP头中的令牌。如果授权组件找到令牌,它允许请求继续。如果没有,授权组件本身可能会响应请求的HTTP错误代码或将用户重定向到登录页面。否则,授权组件将请求传递给下一个路由器的中间件。路由器查看网址并决定下一步做什么。路由器正在响应。如果路由器没有找到任何响应,路由器本身可能会返回404未找到错误。情况
现在让我们通过一个简单的例子来了解更多关于中间件的知识。我们使用启动类的配置方法来配置中间件组件。
使用微软。AspNet . Builder使用微软。托管;使用微软。AspNet . Http使用微软。扩展。依赖注射;使用微软。扩展。配置;命名空间FirstAppDemo {公共类Startup { public Startup(){ var builder=new configuration builder()。AddJsonFile(' appsettings . JSON ');配置=构建器。build();}公共图标配置{ get设置;} //此方法由运行时调用。//使用此方法向容器中添加服务。//有关如何配置应用程序的更多信息,请访问http://go.microsoft.com/fwlink/? LinkID=398940 public void ConfigureServices(IServiceCollection services){ }//此方法由运行时调用。//使用此方法配置HTTP请求管道。public void Configure(IApplicationBuilder应用程序){ app。useiis platformhandler();app。运行(异步(上下文)={ var msg=Configuration[' message '];等待上下文。response . WriteAsync(msg);});} //应用程序的入口点。公共静态void Main(字符串[] args)=WebApplication。RunStartup(args);} }Configure()方法,我们将调用IApplicationBuilder接口的扩展方法来添加中间件。
默认情况下,在一个新的空项目中有两个中间件
IISPlatformHandler
在app注册的中间件。奔跑
IISPlatformHandler
IISPlatformHandler允许我们使用Windows身份验证。它将查看每个传入的请求,看看是否有任何与Windows身份相关的请求,然后调用下一个块中间件。
在app注册的中间件。奔跑
在这种情况下,中间件在app中注册。Run Run方法允许我们传入另一个可以用来处理每个响应的方法。Run方法不是你经常看到的。我们可以称之为中间件终端。
您注册运行的中间件将永远没有机会调用另一个中间件。它唯一能做的就是接收请求,然后就会产生某种反应。
您还可以访问响应对象,并且可以向响应对象添加一些字符串。
如果你想在app之后注册另一个中间件。Run,这个中间件永远不会被调用,因为Run方法是一个中间件终端。它不调用下一个块中间件。
如何添加中间件
让我们继续以下步骤来添加另一个中间件
步骤1右键单击项目,然后选择管理获取包。
步骤2搜索Microsoft.aspnet.diagnostics这个特定的软件包包含许多不同种类的中间件,我们可以使用它们。
步骤3如果项目中没有安装软件包,请选择安装它。
第四步现在让我们调用这个应用程序。在Configure()方法中使用WelcomePage中间件。
//运行时调用此方法。//使用此方法配置HTTP请求管道。public void Configure(IApplicationBuilder应用程序){ app。useiis platformhandler();app。usewelcome page();app。运行(异步(上下文)={ var msg=Configuration[' message '];等待上下文。response . WriteAsync(msg);});步骤5运行您的应用程序,您将看到下面的欢迎屏幕。
这个欢迎屏幕可能没那么有用。
第6步让我们尝试一些其他的东西,这可能比使用欢迎页面更有用。我们将使用RuntimeInfoPage。
//运行时调用此方法。//使用此方法配置HTTP请求管道。public void Configure(IApplicationBuilder应用程序){ app。useiis platformhandler();app。useruntimefopage();app。运行(异步(上下文)={ var msg=Configuration[' message '];等待上下文。response . WriteAsync(msg);});}步骤7保存您的Startup.cs页面并刷新浏览器,您将看到以下页面。
这个RuntimeInfoPage是中间件,将只响应特定的URL请求。如果传入的请求与URL不匹配,这个中间件只是让请求传递给下一个中间件。该请求将通过IISPlatformHandler中间件,然后转到UseRuntimeInfoPage中间件。它不会创建响应,因此会转到我们的应用程序。运行并显示字符串。
第八步:我们在URL的末尾添加“runtimeinfo”。现在,您将看到一个页面,它由中间件运行时信息页面组成。
您将看到一个返回页面,其中显示了有关运行时环境的一些信息,例如操作系统、运行时版本、结构、类型以及您正在使用的所有包。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:ASP.NET核心中间件设置教程(7)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。