如何在 ASP.NET Core 請求範圍控制器中有效存取目前使用者資訊?
Jan 13, 2025 pm 12:10 PM存取 ASP.NET Core 請求範圍控制器中的使用者詳細資訊
檢索經過驗證的使用者詳細資訊(例如電子郵件地址)在 Web 應用程式中至關重要。 然而,在 ASP.NET Core 請求範圍的控制器中有效管理這一點需要仔細考慮。
問題:在控制器的建構函式中直接存取 HttpContext.User
通常會導致 HttpContext
為空,從而阻止使用者資訊擷取。在每個操作方法中重複獲取這些數據效率很低。
解:利用 [Authorize]
屬性和 IHttpContextAccessor
服務。
存取使用者資訊的步驟:
- 在
IHttpContextAccessor
中註冊Startup.cs
(或在 .NET 6 及更高版本中註冊Program.cs
):
public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); // ... other services }
登入後複製
- 將
IHttpContextAccessor
注入控制器的建構子中:
public class MyController : Controller { private readonly IHttpContextAccessor _httpContextAccessor; public MyController(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; //Retrieve and store user ID var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; //Further processing of userId as needed... } // ... your controller actions ... }
登入後複製
這種方法可讓您在控制器的建構子中存取使用者的身分。然後,您可以儲存此資訊以供以後在控制器中使用,從而提高效率並避免重複呼叫HttpContext.User
。 使用空條件運算子 (?.
) 可以處理聲明可能不存在的情況。
以上是如何在 ASP.NET Core 請求範圍控制器中有效存取目前使用者資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)