Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses HttpContext dalam ASP.NET Core?

Bagaimana untuk Mengakses HttpContext dalam ASP.NET Core?

Linda Hamilton
Linda Hamiltonasal
2025-01-19 15:02:09778semak imbas

How to Access HttpContext in ASP.NET Core?

Cara Mendapatkan HttpContext.Current dalam Teras ASP.NET

Dalam Teras ASP.NET, HttpContext.Current telah ditamatkan. Artikel ini meneroka pendekatan alternatif untuk mengakses konteks HTTP semasa.

1. HttpContext Property

Anda boleh mengakses konteks HTTP semasa melalui sifat HttpContext pengawal:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        MyMethod(HttpContext);

        return View();
    }

    private void MyMethod(Microsoft.AspNetCore.Http.HttpContext context)
    {
        // Use the HTTP context here
    }
}

2. Parameter HttpContext dalam Middleware

Dalam perisian tengah Teras ASP.NET tersuai, konteks HTTP semasa disuntik secara automatik sebagai parameter kepada kaedah Invoke:

public async Task InvokeAsync(HttpContext context)
{
    // Use the HTTP context here
}

3. Aksesor Konteks HTTP

Untuk kelas yang tidak diuruskan oleh suntikan kebergantungan Teras ASP.NET, perkhidmatan pembantu IHttpContextAccessor boleh digunakan:

public class MyService
{
    private readonly IHttpContextAccessor _httpContextAccessor;

    public MyService(IHttpContextAccessor httpContextAccessor)
    {
        _httpContextAccessor = httpContextAccessor;
    }

    public void UseHttpContext()
    {
        var context = _httpContextAccessor.HttpContext;
        // Use the HTTP context here
    }
}

Jangan lupa untuk mendaftar HttpContextAccessor dalam ConfigureServices :

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();

    // ...
}

Atas ialah kandungan terperinci Bagaimana untuk Mengakses HttpContext dalam ASP.NET Core?. 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