在ASP.NET Core 2.2类库中访问HttpContext

时间:2019-01-14 22:38:31

标签: c# asp.net-core asp.net-core-mvc asp.net-core-2.0 httpcontext

我需要能够访问ASP.NET Core 2.2中的类库中的HttpContext.Current

HttpContext.Current.Request.Url.ToString().Contains("SAMLart")

当我尝试只在HomeController中使用一种方法时,我正在尝试将代码移植过来,并且在主Web项目中HttpContext甚至没有Current

1 个答案:

答案 0 :(得分:1)

IHttpContextAccessor类中注册Startup,如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

    // Or you can also register as follows

    services.AddHttpContextAccessor();
}

然后在您的班级库中

public class Test 
{
    private IHttpContextAccessor _httpContextAccessor;
    public Test(IHttpContextAccessor httpContextAccessor)
    {
         _httpContextAccessor = httpContextAccessor;
    }
    public void Foo()
    {
        _httpContextAccessor.HttpContext.Request.Path..
    }
}