Asp.Net Core-中间件
在这一章,我们将了解如何设置中间件。中间件技术在 ASP.NET Core中控制我们的应用程序如何响应 HTTP 请求。它还可以控制应用程序的异常错误,这是一个在如何进行身份验证和授权用户执行特定的操作的关键。
现在让我们假设我们想将每个对我们应用程序的请求都记录日志。
案例
现在让我们通过一个简单的例子来理解更多关于中间件的知识。我们通过使用我们的启动类的Configure方法来配置中间件组件。
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace FirstAppDemo { public class Startup { public Startup() { var builder = new ConfigurationBuilder() .AddJsonFile("AppSettings.json"); Configuration = builder.Build(); } public IConfiguration Configuration { get; set; } // This method gets called by the runtime. // Use this method to add services to the container. // For more information on how to configure your application, // visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); }); } // Entry point for the application. public static void Main(string[] args) => WebApplication.Run<Startup>(args); } }
Configure()方法内,我们将调用IApplicationBuilder接口的扩展方法来添加中间件。
默认情况下在一个新的空项目有两块中间件-
IISPlatformHandler
Middleware registered with app.Run
IISPlatformHandler
IISPlatformHandler允许我们使用Windows身份验证。它将着眼于每个传入请求,看看是否有任何Windows身份信息相关的请求,然后调用下一个块中间件。
Middleware registered with app.Run
在这种情况下一个中间件在app.Run中注册的中间件。Run方法允许我们传入另一种方法,我们可以使用它来处理每一个响应。Run方法不是你经常会看到的,我们可以称它为一个中间件的终端。
你注册运行的中间件将永远不会有机会调用另一个中间件,它唯一能做的就是接收请求,便要产生某种反应。
你也访问到一个响应对象,你可以在响应对象中添加一些字符串。
如果你想在app.Run之后注册另一个中间件,这段中间件将永远不会被调用,因为Run方法是一个中间件的终端。它不会调用下一个块中间件。
如何添加一个中间件
让我们着手进行以下步骤来添加另一个中间件 −
步骤1−右键单击项目并选择Manage NuGet Packages。
步骤2−搜索 Microsoft.aspnet.diagnostics,此特定的软件包包含许多不同种的中间件,我们可以使用。
步骤3−如果该包没有安装在您的项目中,那选择安装这个包。
步骤4−现在让我们在Configure()方法调用app.UseWelcomePage中间件。
// This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.UseWelcomePage(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); });
步骤 5 − 运行您的应用程序,您将看到以下的欢迎屏幕。
这个欢迎屏幕可能不是那么有用。
步骤6−让我们试试别的东西,可能是更有用的,而不是使用欢迎页面,我们将使用RuntimeInfoPage。
// This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.UseRuntimeInfoPage(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); }); }
第 7 步 − 保存您的 Startup.cs 页面并刷新您的浏览器,你会看到下面的页面。
这个 RuntimeInfoPage 是中间件,将只响应一个特定的 URL 的请求。如果传入的请求与该 URL 不匹配,这个中间件只是让请求传递到下一件中间件。该请求将通过 IISPlatformHandler 中间件,然后转到 UseRuntimeInfoPage 中间件。它不会创建响应,所以它会转到我们的应用程序。运行并显示该字符串。
步骤8−我们在URL结尾添加“ runtimeinfo”。现在,您将看到一个页面,该页面是由中间件运行时信息页面。
你将看到一个返回页面,它给你展示了一些关于你的运行时环境,如操作系统、运行时版本,结构,类型和您正在使用的所有包的信息。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
现在我们了解了什么是Epics, 我们需要将其提供给 redux-observable 中间件从而使它可以开始监听 actions。 根 Epic 和 redux 需要单个根 Reducer 相似,redux-observable 需要单个根 Epic。正如我们在之前学过的,可以使用 combineEpics() 来完成它。 我们建议将所有的 Epics 导入到单个文件中,然后导出根 Epic 和
赠品 赠品包括赠品列表和赠品发放记录两部分。 赠品列表包括添加赠品操作和批量删除操作、按照活动名称搜索、活动赠品列表。 1.添加赠品包括赠品名称、赠品有效期、选择商品和所选商品列表。 所选商品列表的显示项包括商品名称、价格、库存和操作。在点击选择商品时,弹出框包括按照商品分类和名称搜索、以及可复选的商品列表,显示项为名称、价格、库存。 2.赠品列表 赠品列表中针对于某一赠品的操作,包含编辑、详情及
满减送 满减送:设置满减送优惠。满减满送是给商家提供的一个店铺营销工具,通过这个营销工具可以让商家的店铺促销活动更加丰富。 第一步:添加满减送 点击添加满减送进入会看到对活动信息、优惠设置、选择活动商品的添加 一、活动信息 1、添加活动名称 2、添加生效时间:活动从什么时候开始到什么时候结束。 二、优惠设置 1、优惠方式的选择,如果选择普通优惠就不能添加新的优惠,如果选择多级优惠(每级优惠不累积叠
优惠券 用于设置商城优惠券。包括添加优惠券操作、按照优惠券名称搜索和优惠券列表。 一、添加优惠券 添加优惠券可设置的信息包括名称、面额、发放数量、每人最大领取数、满多少元使用、有效时间、是否允许首页显示,参与商品是全部还是部分。 其中,有效时间可以设置固定时间:开始时间(年月日时分秒)和结束时间(年月日时分秒),也可以设置领到券当日开始N天内有效。生效前买家可以领取但不能使用。 二、优惠券列表 优
互动游戏 互动游戏包括:大转盘、刮刮乐、砸金蛋。 一、大转盘:设置大转盘活动。 幸运大转盘:为了您可以更好的营销,为买家设计更有趣的玩法。 点击进入大转盘: 1、游戏类型:属于哪类型的游戏类型。 2、参与的会员:指可以参与的会员是普通会员还是所有会员。 3、参与扣除积分:指参与此游戏要扣除的积分数。 4、活动状态:指目前是否已经开始。 5、有效时间:指活动的开始时间和结束时间。 6、操作:奖项列表
团购 设置团购相关活动 团购活动是平台方为商家提供的团购专区,店铺可设置团购商品在团购专区中显示售卖。 打开后台-营销-营销中心-店铺营销-团购 一、添加团购 活动名称、活动时间、最大购买量、价格阶梯、添加参加活动的商品(单选) 注:带星号为必填项 对列表内容可编辑和删除操作 二、电脑端和手机端 电脑端-团购专区-详情展示 手机端-团购专区-详情展示
专题活动 设置专题相关活动 如同某宝双11,双12,某东年货节的专场页面,我们推出了专场页面,页面可以由平台方、站点、商家进行创建使用,页面也由各方自行编辑。 打开后台-营销-营销中心-店铺营销-专题活动 一、专题活动列表 进行中:预览、编辑、详情、关闭 已关闭: 已结束:预览、编辑、详情、删除 二、专题活动添加 活动信息 专题名称、关键字、描述、背景色、有效时间 图像:专题活动列表中单独专题背景
预售 设置预售相关活动 【应用场景】: 1、农产品未上市,比如非本季节食品,提前销售。 2、生鲜食品、蔬菜等为了避免损耗,提前销售,根据销量进行采购进货。 【功能描述】: 1、商家添加预售商品,设置商品的预售类型-定金预售、全款预售。 2、消费者根据预售商品类型,购买商品,定金预售模式商品,消费者下单时仅支付定金,等到预售活动结束后,可进行支付尾款。 3、全款模式预售,消费者下单时,需支付整笔订单