Maison >développement back-end >C++ >Comment accéder à HttpContext.Current dans ASP.NET Core après la migration depuis 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!