溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET Core中怎么獲取HttpContext

發(fā)布時(shí)間:2021-06-22 16:10:04 來源:億速云 閱讀:585 作者:Leah 欄目:編程語言

本篇文章為大家展示了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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI