INFORMAZIONI: Guida di protezione dell'autenticazione basata su form utilizzando Secure Sockets Layer (SSL)

Traduzione articoli Traduzione articoli
Identificativo articolo: 813829 - Visualizza i prodotti a cui si riferisce l?articolo.
In questo articolo si riferisce la spazio dei nomi Microsoft .NET Framework Class Library riportato di seguito:
  • System.Web.Security
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Per impostazione predefinita, il cookie contenente il ticket di autenticazione form non è protetto quando si utilizza l'autenticazione basata su form in un'applicazione Web di Microsoft ASP.NET. In questo articolo viene descritto come risolvere problemi di autenticazione sicura basata su form utilizzando il SSL (Secure Sockets Layer). Questo articolo viene descritto inoltre opzioni di implementazione aggiuntiva e modo alternativo per l'autenticazione protetta basata su form.

Informazioni

L'autenticazione basata su form è un servizio di autenticazione di ASP.NET che consente alle applicazioni di fornire la propria interfaccia di accesso e di eseguire una verifica personalizzata delle credenziali. Autenticazione basata su form ASP.NET autentica gli utenti e quindi reindirizza gli utenti non autenticati la pagina di accesso specificata dall'attributo loginUrl del <forms> elemento nel file Web.config. Se si forniscono credenziali attraverso il form di accesso, l'applicazione autentica la richiesta, e quindi il sistema genera una classe FormsAuthenticationTicket la forma di cookie. La classe FormsAuthenticationTicket passata come un cookie in risposta alle successive Web richieste da client autenticati.

Anche se l'autenticazione basata su form fornisce un sistema flessibile di autenticazione, è necessario considerare attentamente alcuni aspetti importanti quando è proteggere un'applicazione ASP.NET. È necessario proteggere le credenziali di accesso iniziale con SSL, in quanto le credenziali vengono inviate al server come testo non crittografato. È inoltre necessario assicurarsi che è proteggere il cookie contenente il ticket di autenticazione form. Per effettuare questa operazione, è necessario utilizzare SSL in tutte le pagine per proteggere il ticket. In alternativa, è possibile crittografare il ticket di autenticazione form impostando l'attributo di protezione del <forms> classe di elemento a tutto o su crittografia nel file Web.config e utilizzare il metodo Encrypt del FormsAuthentication per crittografare il ticket. Per ulteriori informazioni e il metodo Encrypt della classe FormsAuthentication , vedere la "" sezione di questo articolo.

Vantaggi dell'autenticazione basata su form

  • L'autenticazione Form supporta l'autenticazione a fronte di un dati personalizzati archivio, ad esempio un database Microsoft SQL Server o Active Directory servizi di directory. Per ulteriori informazioni, vedere la sezione "REFERENCES" di questo articolo.
  • L'autenticazione basata su form supporta l'autorizzazione basata sui ruoli con la ricerca di ruolo da un archivio dati.
  • L'autenticazione basata su form senza problemi è integrato con il Web interfaccia utente. Per ulteriori informazioni, vedere la sezione "REFERENCES" di questo articolo.
  • ASP.NET fornisce gran parte dell'infrastruttura. Relativamente poco codice è necessario in confronto a versioni di Microsoft Active Server Pages 3.0 e precedenti
  • L'autenticazione ASP.NET basata su form non è necessario Microsoft Internet Explorer. L'autenticazione basata su form supporta un intervallo a livello Web browser client.

L'autenticazione di form Crea guida protezione

  • Utilizzare SSL per tutte le pagine.
  • Utilizzare il metodo Encrypt della classe FormsAuthentication .

Utilizzare SSL per tutte le pagine

Garantire a che il cookie di autenticazione rimane protetto durante una sessione del browser client mediante la crittografia SSL per l'accesso sicuro protetto a tutte le pagine. Utilizzando la crittografia SSL sull'applicazione, è impedire a chiunque di compromettere il cookie di autenticazione e da trasmettere altre preziose informazioni.

Impostare il valore della proprietà requireSSL su true nel file Web.config. In questo modo SSL posto quando il cookie viene inviato al browser. Se non si imposta il valore di requireSSL su true , il modulo genera un'eccezione o non esegue l'autenticazione con il cookie.

Quando requireSSL è impostata su true , la connessione crittografata consente di proteggere le credenziali dell'utente e ASP.NET imposta la proprietà HttpCookie.Secure il cookie di autenticazione. Il browser compatibile non restituisce il cookie a meno che la connessione utilizza SSL. Nell'esempio riportato di seguito viene illustrato come a tale scopo nel file Web.config per l'applicazione:
 <configuration>
 <system.web>
   <authentication mode="Forms">
     <forms name=".ASPXAUTH"
       loginUrl="login.aspx" 
       protection="All"
       timeout="20"
       requireSSL="true">
     </forms>
   </authentication > 
   <authorization>
     <deny users="?" />
   </authorization>
 </system.web>
</configuration>
nell'esempio seguente ha azione se il cookie è impostato per la trasmissione in modo sicuro:

codice di Visual C# .NET
 string cookieName = FormsAuthentication.FormsCookieName.ToString(); 
 HttpCookie MyCookie = Context.Request.Cookies[cookieName];

 if (MyCookie.Secure)
 {
      Response.Write("The cookie is secure with SSL.");
      // Add other required code here.
 } 

codice Visual Basic .NET
   Dim cookieName As String = FormsAuthentication.FormsCookieName.ToString
   Dim MyCookie As HttpCookie = Context.Request.Cookies(cookieName)
   If MyCookie.Secure Then
      Response.Write("The cookie is secure with SSL.")
      ' Add other required code here.
   End If

Utilizzare il metodo della classe FormsAuthentication di crittografia

Se si utilizza solo SSL nella pagina Web iniziale di accesso per crittografare le credenziali vengono passate per l'autenticazione, assicurarsi che che il ticket di autenticazione moduli è contenuto in un cookie è protetto. I ticket di autenticazione di moduli devono essere protetti perché il cookie viene passato tra il client e il server a ogni richiesta Web successiva. Per crittografare il ticket di autenticazione moduli, configurare l'attributo protection del <forms> elemento e utilizzare il metodo Encrypt del FormsAuthentication classe per crittografare il ticket.
<authentication mode="Forms">
  <forms name="MyAppFormsAuth"
       loginUrl="login.aspx"
       protection="All"
       timeout="20" 
       path="/" >
  </forms>
</authentication> 
perché l'attributo di protezione è impostato su tutto , quando l'applicazione chiama il metodo FormsAuthentication.Encrypt , il ticket devono essere convalidato ed essere crittografato.

Consente di chiamare il metodo Encrypt quando si crea i moduli di ticket di autenticazione. In genere, si crea il ticket nel gestore eventi accesso dell'applicazione.

codice di Visual C# .NET
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
codice Visual Basic .NET
Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

Riferimenti

Per informazioni sull'autenticazione ASP.NET e dei moduli, visitare i seguenti siti Web Microsoft:
Autenticazione in ASP.NET: .NET Security Guidance
http://msdn2.microsoft.com/en-us/library/ms978378.aspx
Provider di autenticazione moduli
http://msdn2.microsoft.com/en-us/library/9wff0kyh(vs.71).aspx
Per ulteriori informazioni sull'utilizzo di SSL per proteggere l'autenticazione basata su form, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
306590INFO: ASP.NET Security Overview
315588HOW TO: Secure un'applicazione ASP.NET con certificati lato client
313116PRB: Forms Authentication Requests Are Not Directed to loginUrl Page
324069Procedura: Impostazione di un servizio HTTPS in IIS
326340Active Directory - HOW TO: autenticazione in Active Directory utilizzando l'autenticazione basata su form e Visual Basic .NET
301240SQL: HOW TO: implementazione dell'autenticazione basata su form in un'applicazione ASP.NET con C# .NET
308157SQL: HOW TO: implementazione dell'autenticazione basata su form in un'applicazione ASP.NET utilizzando Visual Basic .NET
311495HOW TO: Implement Role-Based Security with autenticazione basata su form in ASP.NET un'applicazione con Visual C# .NET
306238HOW TO: Implement Role-Based Security with autenticazione basata su form in un'applicazione ASP.NET utilizzando Visual Basic .NET
312906HOW TO: Create Keys by Using Visual C# .NET for Use in Forms Authentication
313091HOW TO: Create Keys by Using Visual Basic .NET for Use in Forms Authentication

Proprietà

Identificativo articolo: 813829 - Ultima modifica: giovedì 19 aprile 2007 - Revisione: 2.5
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.1
Chiavi: 
kbmt kbcookie kbwebforms kbauthentication kbsecurity kbconfig kbinfo KB813829 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 813829
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com