81 votes

Pages SSL sous ASP.NET MVC

Comment utiliser HTTPS pour certaines des pages de mon site basé sur ASP.NET MVC?

Steve Sanderson a un très bon tutoriel sur la façon de procéder, de manière sèche, sur Preview 4 à l'adresse:

http://blog.codeville.net/2008/08/05/adding-httpsssl-support-to-aspnet-mvc-routing/

Y a-t-il un moyen meilleur / mis à jour avec Preview 5?

92voto

Amadiere Points 5606

Si vous utilisez ASP.NET MVC 2 Preview 2 ou une version ultérieure , vous pouvez désormais utiliser simplement:

 [RequireHttps]
public ActionResult Login()
{
   return View();
}
 

Cependant, le paramètre order mérite d'être noté, comme mentionné ici .

17voto

Simon_Weaver Points 31141

MVCFutures a un "RequireSSL' attribut.

(merci Adam pour souligné dans la mise à jour de votre billet de blog)

Il suffit de les appliquer à votre méthode d'action, avec "Redirect=true' si vous voulez un http:// demande à devenir automatiquement https:// :

    [RequireSsl(Redirect = true)]

Voir aussi: ASP.NET MVC RequireHttps à la Production que

9voto

Luke Sampson Points 3359

Comme Amadiere écrit, [RequireHttps] fonctionne très bien en MVC 2 pour entrer dans le protocole HTTPS. Mais si vous voulez seulement utiliser HTTPS pour quelques pages que vous avez dit, MVC 2 de ne pas vous donner tout l'amour - une fois qu'il passe à un utilisateur de HTTPS ils sont coincés là jusqu'à ce que vous rediriger manuellement.

L'approche que j'ai utilisée est d'utiliser un autre attribut personnalisé, [ExitHttpsIfNotRequired]. Lorsqu'il est connecté à un contrôleur ou d'action ce sera redirigé vers HTTP si:

  1. La demande a été HTTPS
  2. [RequireHttps] attribut n'a pas été appliqué à l'action (ou contrôleur)
  3. La demande a été un GET (redirection d'un POSTE à conduire à toutes sortes d'ennuis).

C'est un peu trop grosse à poster ici, mais vous pouvez voir le code ici et en plus quelques détails supplémentaires.

8voto

klabranche Points 15518

Voici un article récent de Dan Wahlin à ce sujet:

http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp-net-mvc-controllers.aspx

Il utilise un attribut ActionFilter.

4voto

RickAnd - MSFT Points 3741

Pour MVC4 et les versions ultérieures, consultez mon article de blog http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new -allowanonymous-attribut.aspx qui inclut [AllowAnonymous] et vous permet de passer un appel pour protéger votre application.

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