2009-06-02 20 views
0

Je suis en train de forcer une page à exécuter sous SSL, donc je l'ai mis en œuvre ce qui suit sur page_load:boucle Redirect pendant http: // https: // redirect

if (!Request.IsLocal && !Request.IsSecureConnection) 
     { 
      Response.Redirect(Helper.GetInstance().SSLBaseURL() + ScriptName()); 
     } 

Pour une raison quelconque cela est finir dans une boucle. Plus tôt aujourd'hui, j'ai vérifié Request.Uri.Scheme, et il se résolvait en tant que "http", bien que j'étais clairement connecté à https://www.domain.com/pagename.aspx.

Vous ne savez pas pourquoi cette page ne détecte pas correctement que nous travaillons sous https?

+0

Quelle est la valeur de Request.IsSecureConnection en cas d'échec? – annakata

+0

C'est faux. J'ai même commenté la redirection, navigué manuellement à https, et fait un response.write sur Request.IsSecureConnection.ToString(). – Keith

+0

Eh bien, j'ai décidé de tricher et de garder une variable de session pour m'assurer qu'une seule redirection se produise. Il prend en charge le problème de bouclage, mais la question demeure. Je me demande si cela a quelque chose à voir avec la façon dont ces serveurs acheminent le trafic Web. – Keith

Répondre

1

Je gérerais cela du côté du serveur Web. Si vous utilisez IIS, ce n'est pas aussi simple, mais vous pouvez activer l'option SSL force et implémenter une page d'erreur personnalisée pour votre 403; 4 (je pense que c'est l'erreur SSL requise) qui redirige vers https.