asp.net-core – 如何在中间件类中访问IHostingEnvironment
发布时间:2020-12-16 03:31:13 所属栏目:asp.Net 来源:网络整理
导读:在Asp.Net Core中,如果创建了一个自定义的中间件并将其放置在自己的类中,那么如何从中间件内部访问IHostingEnvironment? 例如,在我下面的课程中,我认为我可以将IHostingEnvironment注入contstructor,但它始终为null.关于如何访问IHostingEnvironment的任何
在Asp.Net Core中,如果创建了一个自定义的中间件并将其放置在自己的类中,那么如何从中间件内部访问IHostingEnvironment?
例如,在我下面的课程中,我认为我可以将IHostingEnvironment注入contstructor,但它始终为null.关于如何访问IHostingEnvironment的任何其他想法? public class ForceHttps { private readonly RequestDelegate _next; private readonly IHostingEnvironment _env; /// <summary> /// This approach to getting access to IHostingEnvironment /// doesn't work. It's always null /// </summary> /// <param name="next"></param> /// <param name="env"></param> public ForceHttps(RequestDelegate next,IHostingEnvironment env) { _next = next; } public async Task Invoke(HttpContext context) { string sslPort = ""; HttpRequest request = context.Request; if(_env.IsDevelopment()) { sslPort = ":44376"; } if(request.IsHttps == false) { context.Response.Redirect("https://" + request.Host + sslPort + request.Path); } await _next.Invoke(context); } } 解决方法
方法注入工作,只需将其添加到方法签名
public async Task Invoke(HttpContext context,IHostingEnvironment env) {...} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- file-upload – 增加Kestrel的上传请求长度限制
- asp.net core 系列 6 MVC框架路由(下)
- 哪些ASP.NET生命周期事件在HttpApplication.Error之后发生?
- asp.net-mvc – ASP.NET MVC中的UserManager.FindByNameAsy
- asp.net – 使用thinktecture IdentityServer v2进行单点登
- asp.net core 使用 AccessControlHelper 控制访问权限
- asp.net-mvc – ASP.NET MVC控制器动作设计
- 在预编译asp.net网站 – 是否重要?
- asp.net-mvc – 无法在Web服务器上启动调试.调试器无法连接
- asp.net-mvc-3 – ASP.NET Web Api – 从查询字符串值和API
推荐文章
站长推荐
热点阅读