Maison >développement back-end >C++ >Comment accéder à HttpContext dans ASP.NET Core ?

Comment accéder à HttpContext dans ASP.NET Core ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-19 15:02:09709parcourir

How to Access HttpContext in ASP.NET Core?

Comment récupérer HttpContext.Current dans ASP.NET Core

Dans ASP.NET Core, HttpContext.Current est obsolète. Cet article explore des approches alternatives pour accéder au contexte HTTP actuel.

1. Propriété HttpContext

Vous pouvez accéder au contexte HTTP actuel via la propriété HttpContext des contrôleurs :

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. Paramètre HttpContext dans le middleware

Dans le middleware ASP.NET Core personnalisé, le contexte HTTP actuel est automatiquement injecté en tant que paramètre à la méthode Invoke :

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

3. Accesseur de contexte HTTP

Pour les classes non gérées par l'injection de dépendances ASP.NET Core, le service d'assistance IHttpContextAccessor peut être utilisé :

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
    }
}

N'oubliez pas d'enregistrer HttpContextAccessor dans ConfigureServices :

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

    // ...
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn