Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Pengguna Semasa dalam Pengawal Teras ASP.NET?

Bagaimana untuk Mengakses Pengguna Semasa dalam Pengawal Teras ASP.NET?

Susan Sarandon
Susan Sarandonasal
2025-01-13 11:42:44125semak imbas

How to Access the Current User in ASP.NET Core Controllers?

Mengambil semula Pengguna Semasa dalam Pengawal Teras ASP.NET

Mengakses maklumat pengguna dalam pengawal Teras ASP.NET memerlukan pertimbangan yang teliti untuk mengelakkan pengecualian rujukan nol. Menggunakan HttpContext secara langsung dalam pembina pengawal terdedah kepada ralat.

Mengakses Data Pengguna dalam Kaedah Tindakan

Kaedah yang boleh dipercayai melibatkan mendapatkan semula butiran pengguna dalam kaedah tindakan dan menyimpannya dalam ViewData. Contoh ini menganggap kuki Pengguna wujud dalam permintaan:

<code class="language-csharp">public ActionResult Index()
{
    string userId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    ViewData["UserId"] = userId;
    return View();
}</code>

Seterusnya, akses ID pengguna melalui ViewData["UserId"] dalam sebarang paparan yang dikaitkan dengan tindakan Index. Operator bersyarat null (?.) menghalang pengecualian jika FindFirst mengembalikan null.

Mengakses Data Pengguna dalam Pembina Pengawal

Untuk akses berasaskan pembina, manfaatkan antara muka IHttpContextAccessor:

<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    string userId = httpContextAccessor.HttpContext?.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    // ... further processing of userId ...
}</code>

Pastikan IHttpContextAccessor didaftarkan dalam konfigurasi perkhidmatan anda:

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
}</code>

Teknik ini menyediakan kaedah yang mantap untuk mengakses data pengguna semasa dalam ASP.NET Core, meminimumkan risiko ralat masa jalan. Ingat untuk mengendalikan potensi nilai nol dengan sewajarnya menggunakan pengendali bersyarat nol.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pengguna Semasa dalam Pengawal Teras ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn