Comment obtenir HttpContext ASP.NET Core
Aujourd'hui, nous allons découvrir HttpContext dans .NET Core. Cet article couvre les sujets suivants:
- Qu'est-ce que HttpContext?
- Comment accéder à HttpContext dans le contrôleur?
- Comment accéder à HttpContext en service?
- Conclusion
Qu'est-ce que HttpContext?
Il tient les informations actuelles sur la requête Http. Il contient des informations telles que l'autorisation, l'authentification, la requête, la réponse, la session, les éléments, les utilisateurs, les formOptions, etc. Chaque requête HTTP crée un nouvel objet de HttpContext avec les informations actuelles.
Comment accéder à HttpContext dans Controller?
Let's voir comment accéder à HttpContext dans un contrôleur. Les contrôleurs exposent la propriété ControllerBase.HttpContext afin que nous puissions accéder directement aux propriétés HttpContext pour la requête Http actuelle. La meilleure pratique consiste à toujours accéder à HttpContext via la DI avec une implémentation par défaut de HttpContextAccessor .
Exemple: L'exemple ci-dessous montre l'accès au HttpContext . ] dans une méthode d'action GET du contrôleur:
[ HttpGet ( "/ getDetails" ) ]
public string GetDetails ()
{
var result = "Method -" + HttpContext . Request . ] Méthode +
"Path -" + HttpContext . Request . Path ;
return result ;
}
Résultat: Méthode – GET Path – / getdetails
Comment accéder à HttpContext en service?
Dans ASP.NET Core, si nous devons accéder au HttpContext en service, nous c et à l'aide de l'interface IHttpContextAccessor et de son implémentation par défaut de HttpContextAccessor . Il n'est nécessaire d'ajouter cette dépendance que si nous voulons accéder à HttpContext en service.
Pour utiliser HttpContext en service, nous devons suivre les deux étapes suivantes:
Étape 1: Enregistrez une dépendance à l'aide du conteneur d'injection de dépendances intégré .NET Core comme ci-dessous dans Startup.cs classe de la méthode ConfigureServices :
public void ] ConfigureServices ( IServiceCollection services )
{
services . AddControllers () ;
services . AddHttpContextAccessor () ;
services . AddTransient < IUserService UserService > () ;
} [19659031] Étape 2: Ensuite, injectez le IHttpContextAccessor dans le constructeur de service créé et accédez aux propriétés de HttpContext comme ci-dessous:
namespace Get_HttpContext_ASP . NET_Core
{
utilisant Microsoft . AspNetCore . Http ;
public class UserService : IUserService
{
privé lecture seule IHttpContextAccessor _httpContextAccessor ;
public UserService ( IHttpContextAccessor [1945967]
IHttpContextAccessor [1945967] IHttpContextAccessor [1945967] httpContext
_httpContextAccessor = httpContextAccessor ;
}
public string GetLoginUserName ()
{
return [1945900hCext _ returnAhttponth . HttpContext . User . Identity . Name ;
}
}
}
Vous pouvez maintenant accéder à toutes les propriétés de HttpContext en service comme indiqué dans les deux étapes ci-dessus.
Vous pouvez également télécharger cet exemple à partir de ici .
Remarque: Dans .NET, cela a été référencé comme HttpContext.Current, mais cela est déconseillé dans ASP.NET Core (voir ici ).
Conclusion
Dans cet article, nous avons discuté de ce que HttpContext est et comment l'utiliser dans un contrôleur. Après cela, nous avons vu comment s'enregistrer et l'utiliser en service. Si vous avez des suggestions ou des questions concernant cet article, laissez un commentaire ou contactez-moi à l’un des liens de ma biographie.
«Apprenez-le, partagez-le.»
Source link