2017-03-14 50 views
1

我有庫使用System.Web.HttpContext,我正在遷移到.net核心。想知道我應該用於IHttpContext和HttpApplication.net核心等效IHttpContext和HttpApplication

+1

搜索你的問題的標題在谷歌給我們的第一個結果此[遷移HTTP處理程序和模塊ASP.NET核心中間件(https://docs.microsoft.com/en -us/ASPNET /核心/遷移/ HTTP模塊)。也許這可以幫助 – Pikoh

+0

是的,我看過這個文件,可能是我不清楚。我在.net內核找不到System.Web.HttpContext和HttpApplication(完全在.net內核中刪除)的屬性。例如:HttpContext.Server HttpApplication.OnError事件 – My3

+0

使用'ASP.NET Core',我們不再擁有'System.Web.dll'或任何與之直接相關的東西。相反,我們有中間件,這是可插拔的部件,可以緊密結合在一起。 Pankaj正確地處理了「IHttpContextAccessor」部分。而對於'HttpApplication'根本就不存在。 –

回答

0

您可以使用IHttpContextAccessor訪問上下文。要使用IHttpContextAccessor,請使用以下步驟。在Startup.cs

的ConfigureServices方法
public void ConfigureServices(IServiceCollection services) 
{ 
    services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>(); 
    //..... 
} 

  1. 註冊依賴 地方要求其

  2. 進樣IHttpContextAccessor。例如

    public void MyController(IHttpContextAccessor context) 
    { 
        var user = context.HttpContext.User 
    }