
HttpModules 通过 web.config 或 global.asax 配置开发人员无法控制执行顺序。
因为模块的顺序主要基于应用程序生命周期事件。请求和响应的执行顺序保持相同。
HttpModules 可帮助您附加特定于应用程序事件的代码。HttpModules 绑定到 System.web。
中间件在 Startup.cs 代码中配置,而不是 web.config 文件(入口点对于应用程序)
与 HttpModule 不同,可以完全控制 get 的执行内容以及执行顺序。作为它们按照添加的顺序执行。
中间件响应的顺序与请求的顺序相反。
中间件独立于这些事件。
中间件独立于主机。
内置 Asp.Net core 中间件
身份验证 提供身份验证支持。
CORS 配置跨域资源共享。
路由 定义和限制请求路由。
会话提供对管理用户会话的支持。
诊断 包括对错误页面和运行时信息的支持。
示例
public class MyMiddleware{ private readonly RequestDelegate _next; private readonly ILogger _logger; public MyMiddleware(RequestDelegate next, ILoggerFactory logFactory){ _next = next; _logger = logFactory.CreateLogger("MyMiddleware"); } public async Task Invoke(HttpContext httpContext){ _logger.LogInformation("MyMiddleware executing.."); await _next(httpContext); // calling next middleware }}
// 用于将中间件添加到 HTTP 请求管道的扩展方法。
public static class MyMiddlewareExtensions{ public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder builder){ return builder.UseMiddleware(); }}
//通过使用扩展方法as在请求管道中添加自定义中间件如下图
public void Configure(IApplicationBuilder app, IHostingEnvironment env){ app.UseMiddleware() app.Run(async (context) =>{ await context.Response.WriteAsync("Hello World!"); });}
以上就是C# ASP.NET Core 中间件与 HttpModule 有何不同?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435040.html
微信扫一扫
支付宝扫一扫