Je souhaite utiliser HTTPS dans mon application Web ASP.NET, mais uniquement pour la page Login.aspx.
Comment cela peut-il être accompli?
Obtenez ou créez un certificat
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.
Ajouter la balise secureWebPages à web.config
<configuration>
...
<secureWebPages enabled="true">
...
</secureWebPages>
...
<system.web>
...
</system.web>
</configuration>
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!
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.
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").
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);
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.