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
Lepaskan: 2025-01-13 11:42:44
asal
128 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Pastikan IHttpContextAccessor didaftarkan dalam konfigurasi perkhidmatan anda:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan