为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NET Core中获取HttpContext.Current?

如何在ASP.NET Core中获取HttpContext.Current?

婷婷同学_ 2019-08-16 16:04:04
如何在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依赖注入。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 5900 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信