48 votes

Comment utiliser HTTPS dans une application ASP.Net ?

Je veux utiliser HTTPS dans mon application web ASP.NET, mais uniquement pour la page Login.aspx.

Comment cela peut-il être accompli ?

31voto

Talley Points 381
  1. Obtenez ou créez d'abord un certificat

  2. Obtenez le module SecureWebPageModule à partir de http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver . Les instructions pour l'installation se trouvent dans l'article.

  3. Ajouter la balise secureWebPages au web.config

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
  4. Ajouter les fichiers et répertoires à utiliser pour le protocole https :

    <secureWebPages enabled="true">
        <file path="Login.aspx" />
        <file path="Admin/Calendar.aspx" ignore="True" />
        <file path="Members/Users.aspx" />
        <directory path="Admin" />
        <directory path="Members/Secure" />
    </secureWebPages> 

J'espère que cela vous aidera !

5 votes

Le projet SecureWebPageModule a été renommé "SecuritySwitch", et peut être trouvé à l'adresse suivante http://code.google.com/p/securityswitch/

12voto

GregD Points 4434

Vous pouvez publier votre propre certificat ou en acheter un. Le problème est que l'achat d'un certificat, selon l'entreprise, signifie qu'il est déjà stocké dans le magasin de certificats de la plupart des navigateurs. Le certificat que vous publiez vous-même ne le sera pas et vos utilisateurs devront faire l'effort supplémentaire d'installer votre certificat.

Vous ne dites pas quelle version de IIS vous utilisez, mais Voici des instructions détaillées pour IIS 6

Vous pouvez acheter des certificats relativement bon marché ou vous pouvez aller avec les grands garçons (verisign) et obtenir un certificat de validation étendu qui rend votre barre d'adresse dans IE, verte. Il s'agit également d'un processus de validation assez rigoureux qui prend du temps.

Si vous connaissez tous les utilisateurs qui fréquenteront votre site Web, il n'y a aucun problème à installer le vôtre. Cependant, pour un site Web ouvert avec des utilisateurs anonymes (que vous ne connaissez pas), il est probablement préférable d'acheter un certificat qui se trouve déjà dans la plupart des principaux navigateurs et magasins de certificats.

Vous pouvez activer SSL via IIS et l'exiger uniquement pour votre page login.aspx et non pour le reste.

10voto

JeffO Points 5393

Après avoir configuré/installé SSL, vous devez faire une sorte de redirection sur la page de connexion vers https://. Ensuite, quelle que soit la page vers laquelle l'utilisateur est envoyé après la validation, ce peut être simplement http://.

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Request.IsSecureConnection = False And _
        Not Request.Url.Host.Contains("localhost") Then

        Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
    End If
End Sub

Cela peut être plus facile à mettre en œuvre sur une page principale ou sur toutes les pages pour lesquelles vous avez besoin du protocole https. En vérifiant "localhost", vous éviterez d'obtenir une erreur dans votre environnement de test (à moins que votre serveur de test ait un autre nom, vérifiez-le : "mytestservername").

0 votes

Je ne sais pas comment rediriger la page de connexion avec HTTPS:// c'est mon problème. merci.

0 votes

Ajoutez le code de Guiness à la page qui contient votre contrôle de connexion. Je le déplacerais probablement en haut de page_load, ou dans OnInit, car cela évite de traiter tout le reste, mais cela fonctionnera très bien.

5voto

Paul Points 7328

Clause de non-responsabilité - J'ai participé à l'élaboration de ce projet.

Je recommande d'utiliser http://nuget.org/packages/SecurePages/ Il vous donne la possibilité de sécuriser des pages spécifiques ou d'utiliser Regex pour définir les correspondances. Il forcera également toutes les pages ne correspondant pas à la Regex ou directement spécifiées à revenir à HTTP.

Vous pouvez l'installer via NuGet : Install-Package SecurePages

Les docs sont ici : https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

Utilisation simple :

SecurePagesConfiguration.Urls.AddUrl("/cart");

o

SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);

0 votes

Merci de poster votre réponse ! Veillez à lire le FAQ sur l'autopromotion soigneusement. Notez également qu'il est requis que vous affichiez une clause de non-responsabilité chaque fois que vous créez un lien vers votre propre site/produit.

3voto

tsilb Points 4356

Vous pouvez activer HTTPS dans votre configuration IIS, mais il ne sera pas "sécurisé" tant que vous n'aurez pas acquis un certificat SSL et que vous ne l'aurez pas branché sur IIS. Assurez-vous que le port 443 est ouvert.

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