Maison > développement back-end > C++ > Comment accéder à HttpContext.Current dans ASP.NET Core après la migration depuis ASP.NET Web Forms ?

Comment accéder à HttpContext.Current dans ASP.NET Core après la migration depuis ASP.NET Web Forms ?

Susan Sarandon
Libérer: 2025-01-19 14:51:09
original
995 Les gens l'ont consulté

How to Access HttpContext.Current in ASP.NET Core After Migrating from ASP.NET Web Forms?

Accès à HttpContext.Current après la migration d'ASP.NET Web Forms vers ASP.NET Core

Lors de la mise à niveau d'une application ASP.NET Web Forms vers ASP.NET Core, les développeurs sont souvent confrontés à un défi : comment accéder au HttpContext.Current familier ? Parce que dans ASP.NET Core, HttpContext.Current a été supprimé. Cet article présente plusieurs façons d'accéder au contexte HTTP actuel dans ASP.NET Core.

Solution : Adaptez-vous à la méthode d'accès contextuel d'ASP.NET Core

ASP.NET Core adopte une approche différente pour gérer le contexte HTTP. Vous devez ajuster la structure de votre code pour tenir compte de ce changement. Voici plusieurs options possibles :

1. Utilisez l'attribut HttpContext dans le contrôleur

Dans le contrôleur d'ASP.NET Core, vous pouvez accéder au contexte HTTP actuel directement via l'attribut HttpContext :

public class HomeController : Controller
{
    public IActionResult Index()
    {
        MyMethod(HttpContext);
        // ...其他代码...
    }
}
Copier après la connexion

2. Utiliser les paramètres HttpContext dans le middleware

Si vous utilisez un middleware personnalisé, l'objet HttpContext sera automatiquement passé en paramètre à la méthode Invoke :

public Task Invoke(HttpContext context)
{
    // 使用 context 访问 HTTP 上下文 ...
}
Copier après la connexion

3. Utiliser les IHttpContextAccessor services

Pour les classes gérées dans le système d'injection de dépendances ASP.NET Core, vous pouvez utiliser le service IHttpContextAccessor pour obtenir le contexte HTTP :

public MyMiddleware(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}
Copier après la connexion

Vous pouvez alors accéder au contexte en toute sécurité :

var context = _httpContextAccessor.HttpContext;
// 使用 context 访问 HTTP 上下文 ...
Copier après la connexion

Pensez à vous inscrire ConfigureServices dans la méthode IHttpContextAccessor :

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ...其他代码...
}
Copier après la connexion

Avec la méthode ci-dessus, vous pouvez accéder et utiliser avec succès le contexte HTTP dans ASP.NET Core, complétant ainsi une migration en douceur depuis ASP.NET Web Forms. La méthode que vous choisissez dépend de la structure de votre code et de vos besoins spécifiques.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal