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
Susan Sarandonoriginal
2025-01-19 14:51:09966parcourir

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 :

<code class="language-csharp">public class HomeController : Controller
{
    public IActionResult Index()
    {
        MyMethod(HttpContext);
        // ...其他代码...
    }
}</code>

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 :

<code class="language-csharp">public Task Invoke(HttpContext context)
{
    // 使用 context 访问 HTTP 上下文 ...
}</code>

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 :

<code class="language-csharp">public MyMiddleware(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}</code>

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

<code class="language-csharp">var context = _httpContextAccessor.HttpContext;
// 使用 context 访问 HTTP 上下文 ...</code>

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

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ...其他代码...
}</code>

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