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

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
In questo articolo si riferisce la spazio dei nomi Microsoft .NET Framework Class Library riportato di seguito:
  • System.Web.Security
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 "Use the Encrypt Method of the FormsAuthentication Class" 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
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

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 813829 - Ultima revisione: 04/19/2007 07:58:30 - Revisione: 2.5

Microsoft ASP.NET 1.1

  • kbmt kbcookie kbwebforms kbauthentication kbsecurity kbconfig kbinfo KB813829 KbMtit
Feedback