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

Bagaimana untuk Cekap Mengakses Maklumat Pengguna Semasa dalam Pengawal Skop Permintaan Teras ASP.NET?

Mary-Kate Olsen
Lepaskan: 2025-01-13 12:10:43
asal
589 orang telah melayarinya

How to Efficiently Access Current User Information in ASP.NET Core Request-Scoped Controllers?

Mengakses Butiran Pengguna dalam Pengawal Skop Permintaan Teras ASP.NET

Mendapatkan semula butiran pengguna yang disahkan, seperti alamat e-mel mereka, adalah penting dalam aplikasi web. Walau bagaimanapun, mengurus ini dengan cekap dalam pengawal skop permintaan Teras ASP.NET memerlukan pertimbangan yang teliti.

Masalah: Mengakses terus HttpContext.User dalam pembina pengawal selalunya mengakibatkan HttpContext batal, menghalang pengambilan maklumat pengguna. Mengambil data ini berulang kali dalam setiap kaedah tindakan adalah tidak cekap.

Penyelesaian: Manfaatkan atribut [Authorize] dan perkhidmatan IHttpContextAccessor.

Langkah untuk Mengakses Maklumat Pengguna:

  1. Daftar IHttpContextAccessor dalam Startup.cs anda (atau Program.cs dalam .NET 6 dan kemudian):
<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other services
}</code>
Salin selepas log masuk
  1. Suntikan IHttpContextAccessor ke dalam pembina pengawal anda:
<code class="language-csharp">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 ...
}</code>
Salin selepas log masuk

Pendekatan ini membolehkan anda mengakses identiti pengguna dalam pembina pengawal. Anda kemudiannya boleh menyimpan maklumat ini untuk kegunaan kemudian dalam pengawal, meningkatkan kecekapan dan mengelakkan panggilan berulang ke HttpContext.User. Penggunaan pengendali tanpa syarat (?.) mengendalikan kes di mana tuntutan mungkin tidak ada.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengakses Maklumat Pengguna Semasa dalam Pengawal Skop Permintaan 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