如何在ASP.NET Core中获取HttpContext.Current?我们目前正在使用ASP.NET Core重写/转换我们的ASP.NET WebForms应用程序。尽量避免重新设计。我们HttpContext在类库中使用了一个部分来检查当前状态。如何HttpContext.Current在.NET Core 1.0中访问? var current = HttpContext.Current;
if (current == null)
{
// do something here
// string connection = Configuration.GetConnectionString("MyDb");
}我需要访问它才能构建当前的应用程序主机。$"{current.Request.Url.Scheme}://{current.Request.Url.Host}{(current.Request.Url.Port == 80 ? "" : ":" + current.Request.Url.Port)}";
3 回答
largeQ
TA贡献2039条经验 获得超7个赞
如果您确实需要对当前上下文的静态访问,则可以使用此解决方案。在Startup.Configure(...)中
app.Use(async (httpContext, next) =>{ CallContext.LogicalSetData("CurrentContextKey", httpContext); try { await next(); } finally { CallContext.FreeNamedDataSlot("CurrentContextKey"); }});
当你需要它时,你可以得到它:
HttpContext context = CallContext.LogicalGetData("CurrentContextKey") as HttpContext;
我希望有所帮助。请记住,当您无法选择时,此解决方法。最佳实践是使用de依赖注入。
- 3 回答
- 0 关注
- 5900 浏览
添加回答
举报
0/150
提交
取消