2011-10-05 3 views
2

Je sais que vous pouvez le faire:Web Farm Framework et MVC 3: Comment faire pour requérir https sur une méthode d'action?

#if !DEBUG 
    [RequireHttps] //apply to this action only 
#endif 

si vous utilisez Framework Farm Web où le serveur « le contrôleur » reçoit une demande SSL 443 en dehors, déchiffre, puis le transmet aux serveurs primaires/secondaires en utilisant http 80 (sans ssl?)

Dans cet environnement, j'ai essayé l'attribut [RequireHttps] mais il a répondu "La page ne redirige pas correctement" dans Firefox. Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui ne se terminera jamais. Il reconnaît que ce n'est pas SSL, mais parce qu'il supprime SSL, MVC ne verra jamais les attributs SSL.

Comment réécrire certaines méthodes d'action pour utiliser https dans MVC 3 dans une batterie de serveurs Web? Comment pouvez-vous faire cela avec [RequireHttps] ou devez-vous sélectionner toutes les URL de votre site Web qui nécessitent SSL et "URL Rewrite"?

EDIT:

J'ai changé le contrôleur pour identifier le port 443 du trafic et de le transmettre à https à la ferme Web. Je pensais que je pouvais sortir avec seulement charger les certificats SSL sur le contrôleur, mais ils ont également besoin chargé sur le primaire et secondaire (ou seulement.)

Répondre

2

Dans votre méthode d'action, vous pouvez vérifier une connexion sécurisée:

if(Request.IsSecureConnection()) 
{ 
    // Secure connection logic here 
} 
+0

Le problème est que la batterie Web supprime le fichier SSL avant de le livrer au serveur Web principal. Request.IsSecureConnection dit false. –

+0

J'ai configuré le WWF pour transférer la requête SSL au port SSL sur le second serveur. Maintenant ça marche. –

+0

Ainsi, lors de la configuration correcte du contrôleur, votre suggestion fonctionne également (moins les parenthèses sur la propriété). –

Questions connexes