您好,登錄后才能下訂單哦!
本篇文章為大家展示了ASP.NET Core中怎么獲取HttpContext,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
Telerik UI for ASP.NET Core最新版下載
Telerik UI for ASP.NET Core是用于跨平臺(tái)響應(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)高級(jí)功能。
什么是HttpContext?
它保存有關(guān)Http請(qǐng)求的當(dāng)前信息,包含諸如授權(quán)、身份驗(yàn)證、請(qǐng)求、響應(yīng)、會(huì)話、項(xiàng)目、用戶、formOptions等信息。每個(gè)HTTP請(qǐng)求都會(huì)使用當(dāng)前信息創(chuàng)建HttpContext的新對(duì)象。
如何在控制器中訪問HttpContext?
控制器公開了ControllerBase.HttpContext屬性,因此我們可以直接訪問當(dāng)前Http請(qǐng)求的HttpContext屬性,最佳的方法是始終使用默認(rèn)的HttpContextAccessor通過DI訪問HttpContext。
要在服務(wù)中使用HttpContext,我們需要執(zhí)行以下兩個(gè)步驟:
Step 1:使用.NET Core內(nèi)置依賴項(xiàng)注入容器注冊(cè)依賴項(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中已棄用。
上述內(nèi)容就是ASP.NET Core中怎么獲取HttpContext,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。