您好,登錄后才能下訂單哦!
本篇文章為大家展示了ASP.NET Core中怎么獲取HttpContext,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Telerik UI for ASP.NET Core最新版下載
Telerik UI for ASP.NET Core是用于跨平臺響應式Web和云開發的最完整的UI工具集,擁有超過60個由Kendo UI支持的ASP.NET核心組件。它的響應式和自適應的HTML5網格,提供從過濾、排序數據到分頁和分層數據分組等100多項高級功能。
什么是HttpContext?
它保存有關Http請求的當前信息,包含諸如授權、身份驗證、請求、響應、會話、項目、用戶、formOptions等信息。每個HTTP請求都會使用當前信息創建HttpContext的新對象。
如何在控制器中訪問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中已棄用。
上述內容就是ASP.NET Core中怎么獲取HttpContext,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。