Come utilizzare HTTPS in un’applicazione ASP.Net

Voglio utilizzare HTTPS nella mia applicazione Web ASP.NET, ma solo per la pagina Login.aspx.

Come può essere realizzato?

  1. Prima ottieni o crea un certificato

  2. Ottieni il modulo SecureWebPageModule da http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS- Automaticamente-Ver. Le istruzioni per la configurazione sono disponibili nell’articolo.

  3. Aggiungi il tag secureWebPages a web.config

     ...  ...  ...  ...   
  4. Aggiungi file e directory da utilizzare per il protocollo https:

            

Spero che questo ti aiuti!

Puoi pubblicare il tuo certificato o puoi acquistarne uno. L’avvertenza è che l’acquisto, a seconda dell’azienda, significa che è già presente nell’archivio certificati per la maggior parte dei browser. La tua auto pubblicata non sarà e i tuoi utenti dovranno fare il passo extra di installare il tuo cert.

Non dici la versione di IIS che stai usando, ma ecco alcune istruzioni dettagliate per IIS 6

Puoi acquistare certs relativamente economici oppure puoi andare con i ragazzi più grandi (verisign) e ottenere un certificato di validazione esteso che trasforma la tua barra degli indirizzi in IE, verde. È anche un processo di convalida un po ‘rigoroso e richiede tempo.

Se conosci tutti gli utenti che raggiungeranno il tuo sito web, non c’è alcun problema con l’installazione del tuo. Tuttavia, per un sito web aperto con utenti anonimi (che non conosci), è probabilmente meglio acquistarne uno che è già presente nella maggior parte dei principali browser, negozi di certificati.

È ansible abilitare SSL tramite IIS e richiederlo solo per la propria pagina login.aspx e non per il resto.

Dopo aver installato / installato SSL, si desidera eseguire una sorta di reindirizzamento nella pagina di accesso a https: //. Quindi, qualunque pagina venga inviata all’utente dopo la convalida, può essere solo 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 

Questo può essere più facile da implementare su una pagina principale o solo su tutte le pagine che richiedono https. Selezionando “localhost” eviterai di ricevere un errore nel tuo ambiente di test (a meno che il tuo server di prova abbia un altro nome piuttosto che verificarlo: “mytestservername”).

disclaimer – Sono stato coinvolto nello sviluppo di questo progetto

Raccomanderei l’uso di http://nuget.org/packages/SecurePages/. Ti dà la possibilità di proteggere pagine specifiche o utilizzare Regex per definire le corrispondenze. Forzerà anche tutte le pagine che non corrispondono al Regex o direttamente specificate su HTTP.

Puoi installarlo tramite NuGet: Install-Package SecurePages

I documenti sono qui: https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

Uso semplice:

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

o

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

È ansible abilitare HTTPS nella configurazione di IIS, ma non sarà “sicuro” a meno che non si acquisisca un certificato SSL e lo si colleghi a IIS. Assicurati di avere la porta 443 aperta.