Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Pengguna Semasa dalam Pengawal Teras ASP.NET?
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!