原創|行業資訊|編輯:龔雪|2021-04-06 10:44:08.263|閱讀 344 次
概述:在本文中,我們將討論HttpContext是什么以及如何在控制器中使用、以及如何在服務中注冊并使用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Telerik UI for ASP.NET Core最新版下載
Telerik UI for ASP.NET Core是用于跨平臺響應式Web和云開發的最完整的UI工具集,擁有超過60個由Kendo UI支持的ASP.NET核心組件。它的響應式和自適應的HTML5網格,提供從過濾、排序數據到分頁和分層數據分組等100多項高級功能。
它保存有關Http請求的當前信息,包含諸如授權、身份驗證、請求、響應、會話、項目、用戶、formOptions等信息。每個HTTP請求都會使用當前信息創建HttpContext的新對象。
控制器公開了ControllerBase.HttpContext屬性,因此我們可以直接訪問當前Http請求的HttpContext屬性,最佳的方法是始終使用默認的HttpContextAccessor通過DI訪問HttpContext。
要在服務中使用HttpContext,我們需要執行以下兩個步驟:
Step 1:使用.NET Core內置依賴項注入容器注冊依賴項,如下所示,在ConfigureServices方法的Startup.cs類中:
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); //IHttpContextAccessor register services.AddHttpContextAccessor(); services.AddTransient<IUserService, UserService>(); }
Step 2:接下來,將IHttpContextAccessor注入到創建的服務構造函數中,并如下所示訪問HttpContext的屬性:
namespace Get_HttpContext_ASP.NET_Core { using Microsoft.AspNetCore.Http; public class UserService : IUserService { private readonly IHttpContextAccessor _httpContextAccessor; public UserService(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public string GetLoginUserName() { return _httpContextAccessor.HttpContext.User.Identity.Name; } } }
現在,您可以訪問服務中HttpContext的所有屬性,如以上兩個步驟所示。
注意:在.NET中,它被稱為HttpContext.Current,但是在ASP.NET Core中已棄用。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網