web-dev-qa-db-fra.com

Comment utiliser HTTPS dans une application ASP.Net

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

Comment cela peut-il être accompli?

44
Mon Aung
  1. Obtenez ou créez un certificat

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

  3. Ajouter la balise secureWebPages à web.config

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
    
  4. Ajoutez 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 t'aides!

30
Talley

Vous pouvez publier votre propre certificat ou vous pouvez en acheter un. La mise en garde est que l'achat d'un, selon l'entreprise, signifie qu'il est déjà stocké dans le magasin de certificats pour la plupart des navigateurs. Votre auto-publication ne le sera pas et vos utilisateurs devront prendre l'étape supplémentaire d'installation de votre certificat.

Vous ne dites pas quelle version de IIS vous utilisez, mais voici quelques 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 transforme votre barre d'adresse en IE, en vert. C'est également un processus de validation quelque peu rigoureux et prend du temps.

Si vous connaissez tous les utilisateurs qui visiteront 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'en acheter un qui est déjà dans la plupart des principaux navigateurs, magasins de certificats.

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

12
GregD

Après avoir installé/installé SSL, vous souhaitez effectuer une sorte de redirection sur la page de connexion vers https: //. Quelle que soit la page à laquelle l'utilisateur est envoyé après validation, il peut s'agir simplement de 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 à implémenter sur une page maître ou sur toutes les pages dont vous avez besoin https. En vérifiant "localhost", vous éviterez d'avoir une erreur dans votre environnement de test (à moins que votre serveur de test ait un autre nom que celui-ci: "mytestservername").

10
JeffO

Mentions légales - J'ai participé au développement de ce projet

Je recommanderais 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 des correspondances. Il forcera également toutes les pages ne correspondant pas au Regex ou directement spécifiées à HTTP.

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

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

Utilisation simple:

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

ou

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

Vous pouvez activer HTTPS dans votre configuration IIS, mais il ne sera "sécurisé" que si vous acquérez un certificat SSL et le branchez dans IIS. Assurez-vous que le port 443 est ouvert.

3
tsilb