71 votes

Différence entre HttpContext.De courant et de Contrôleur.Contexte MVC ASP.NET

Je suis en train de travailler sur un MVC ASP .NET application. Je suis relativement nouveau à la fois.

Dans un contrôleur, je suis en train d'essayer d'obtenir le journal actuel de l'utilisateur, pour lesquels il semble y avoir deux façons de le faire:

System.Web.HttpContext.Current.User.Identity.Name

Ou

HttpContext.User.Identity.Name

Quelle est la différence entre ces? Dans la mesure où je peux dire à l'intérieur de la MVC le contrôleur a l'actuel HttpContext stockées en tant que bien de sorte que ces méthodes sont identiques. Est-ce exact?

Merci.

90voto

Lucero Points 38928

Oui, ils sont généralement identiques. Toutefois, si vous travaillez avec des threads supplémentaires, ils ne seront pas; System.Web.HttpContext.Current est threadstatic.

25voto

Levi Points 22222

Le contexte fourni par le contrôleur (non statique HttpContext.Actuel) est mockable. Si vous êtes intéressé par l'unité de tester votre code, il est généralement beaucoup plus facile de créer une maquette ControllerContext et le mettre sur le Contrôleur qu'il est d'aller à travers HttpContext.Actuel. Sinon ControllerContext.HttpContext points pour les mêmes données que HttpContext.Actuel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X