2012-06-27 4 views
1

notre adresse de site est comme "http: //members.XXX.XX", donc je veux rediriger vers le "https: //members.XXX.XX" peu importe le type d'utilisateur « members.XXX.XX » ou « http: //members.XXX.XX », voici mon code, et je l'ai mis dans le default.aspxRediriger http vers https dans default.aspx

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.IsSecureConnection == false) 
     { 
      Response.Redirect(Request.Url.ToString().Replace("http://", "https://")); 
     } 

     if (!Request.Url.ToString().StartsWith("http://") || !Request.Url.ToString().StartsWith("https://")) 
      Response.Redirect("https://" + Request.Url.ToString()); 

     Response.Redirect("~/pages/login.aspx"); 
    } 

qui ne fonctionne pas, tout le monde peut aider Merci beaucoup

Editer: Nous ne l'avons pas fait dans IIS parce que nous avons installé l'ELMAH qui est un système de consignation des erreurs. Mon collègue a dit que si nous avons fait que le ELMAH ne fonctionnerait pas

+1

Utilisez-vous IIS7? – Josh

+0

Pourquoi le code ci-dessus ne fonctionne pas? –

+0

@WiktorZychla ont aucune idée, dactylographiés http: //members.XXX.XX qui ne redirect https – pita

Répondre

2

lieu de le faire dans le code simplement laisser IIS gérer pour vous.

IIS7
via IIS ssl Exigent et capturer le code d'erreur 403.4 faire la redirection pour vous. Guide étape par étape "IIS7 Redirect HTTP to HTTPS"

IIS6
Vous pouvez créer un site de redirection qui fonctionne sur le port 80 pour gérer votre redirection vers https. En savoir plus à ce sujet "How to Force Redirection From HTTP to HTTPS on IIS 6.0".

+0

Nous avons essayé et mon collègue de travail dit que fera ELMAH (un système d'enregistrement d'erreur) désactivé, donc .. je – pita

+1

actuellement configuration ELMAH et ont la redirection en place. (J'utilise la configuration de base avec ELMAH) Je parcourez simplement sur le site à 'https: // localhost/elmah.axd' et tout fonctionne bien. –

+0

merci, ça marche, et l'elmah fonctionne aussi – pita

1

Vous pouvez ajouter à Global.asax

protected void Application_BeginRequest() 
    { 

     if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection) 
      Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:")); 
    } 
Questions connexes