2009-06-17 5 views
1

J'ai SSL installé à la racine d'un serveur. J'ai une page dont le code derrière le code est censé rediriger après une certaine validation vers une page sécurisée. Voici le code de redirection:Pourquoi IIS répond-il à une demande de page sécurisée (SSL) avec un 302 vers sa version non sécurisée?

switch (PageBase2.GetParameterValue("Environment")) //Retrieves App Setting named Environment from web.config 
      { 
       case "Server": 
        strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx"; 
        break; 
       case "Local": 
        strURL = @"http://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx"; 
        break; 
       default: 
        strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx"; 
        break; 
      } 
      Response.Redirect(strURL, false); 

Mais la page qui a été servie par IIS n'est pas sécurisée. J'ai regardé la console firebug et il semble que le client fait une demande get à https://server/checkout/payment.aspx mais IIS répond avec un 302 à http://server/checkout/payment.aspx Des indices, quant à ce qui pourrait être la cause. J'ai même essayé de forcer le SSL pour la page, mais cela ne fonctionne pas, je reçois une erreur 403.4. (SSL est requis pour voir cette ressource.) Et si je supprime la logique de redirection et code la page de paiement à rediriger vers sa version SSL lorsque la connexion n'est pas sécurisée avec Request.IsSecureConnection, je me retrouve avec une boucle de redirection sans fin, simplement car IIS ne servira toujours pas la version sécurisée sans un 302. Des idées?

Répondre

0

Il semble que vous n'ayez pas la configuration appropriée d'IIS, avec le SSL appliqué au site Web spécifique.

Vous pouvez tester ceci, en essayant de visiter une ressource statique, une image ou un fichier html, via le lien https. si cela redirige aussi, je regarderais dans la config IIS.

+0

Il ne fait pas un 302 avec des ressources statiques, il sert le fichier avec un HTTP 200 régulier. –

Questions connexes