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