Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

ASP.NET supportare la colonna vocale

Introduzione

Benvenuto nella colonna Supporto vocale di Microsoft ASP.NET. Sono Nilay B. Shah, ASP.NET team di supporto per sviluppatori. Lavoro con ASP.NET supporto da più di un anno e mezzo. L'autenticazione basata su moduli è davvero una funzionalità interessante per l'autenticazione. Questo articolo illustra alcuni problemi che gli utenti hanno riscontrato confusione con l'autenticazione dei moduli, ad esempio la relazione del ticket di autenticazione dei moduli e il cookie di autenticazione dei moduli e le relative impostazioni. Vorrei ringraziare Jerry Orman, responsabile tecnico del team di supporto ASP.NET, per il suo incredibile aiuto!

Persone a volte chiedendo circa moduli di autenticazione "ticket" e "cookie" perché sono strettamente correlati. Ho incontrato domande come queste: Chiunque può spiegare la differenza tra la scadenza del cookie e la scadenza del biglietto? Alla scadenza del cookie, l'utente verrà reindirizzato alla pagina di accesso. Cosa succede quando scade il biglietto? Farà anche scadere il cookie? Cosa aggiorna SlidingUpdate in realtà?

In questo articolo mi concentrerò su questi due aspetti dell'autenticazione basata su moduli per rispondere alle domande seguenti:

  • Che cos'è il cookie di autenticazione ticket di autenticazione forms e forms? Come sono correlate?

  • Qual è il ruolo di un ticket nell'autenticazione forms?

  • In che modo la scadenza dei cookie e la scadenza dei biglietti sono correlate?

  • Come funziona la scadenza scorrevole nel contesto dei cookie di autenticazione ticket e forms di autenticazione moduli?

  • Dove è possibile impostare la proprietà di timeout del cookie di autenticazione dei moduli e del ticket di autenticazione dei moduli?

  • Scenario di problema: l'autenticazione dei moduli potrebbe essere in timeout prima del valore dell'attributo timeout impostato nel file di configurazione

Che cos'è il cookie di autenticazione ticket di autenticazione forms e forms? Come sono correlate?

Il cookie di autenticazione forms non è altro che il contenitore per il ticket di autenticazione forms. Il ticket viene passato come valore del cookie di autenticazione forms con ogni richiesta ed è utilizzato dall'autenticazione forms, sul server, per identificare un utente autenticato.

Tuttavia, se scegliamo di utilizzare l'autenticazione moduli senza cookie, il ticket verrà passato nell'URL in formato crittografato. L'autenticazione dei moduli senza cookie viene usata perché a volte i browser client bloccano i cookie. Questa funzionalità è stata introdotta in Microsoft .NET Framework 2.0.

Per ulteriori informazioni, visitare il seguente sito Web Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Qual è il ruolo di un ticket nell'autenticazione forms?

Il ticket di autenticazione forms viene usato per indicare all'applicazione ASP.NET chi si è. Pertanto, ticket è il blocco predefinito della sicurezza di Forms Authentication.

Il ticket viene crittografato e firmato utilizzando l'<machineKey> elemento di configurazione del file di Machine.config del server. ASP.NET 2.0 usa decryptionKey e il nuovo attributo di decrittografia dell'elemento <machineKey> per crittografare i ticket di autenticazione forms. L'attributo di decrittografia consente di specificare l'algoritmo di crittografia da usare. ASP.NET 1.1 e 1.0 usano la crittografia 3DES, che non è configurabile. La manomissione del valore del ticket è determinata da un errore di decrittografia del ticket sul server. Di conseguenza, l'utente verrà reindirizzato alla pagina di accesso.


Se l'applicazione viene distribuita in una Web farm, è necessario verificare che i file di configurazione in ogni server condividano lo stesso valore per gli attributi validationKey e decryptionKey nel tag <machineKey>, usati rispettivamente per l'hash e la decrittografia del ticket. È necessario eseguire questa operazione perché non è possibile garantire quale server gestirà le successive richieste. Per ulteriori informazioni sulla crittografia FormsAuthenticationTicket e sulla distribuzione di web farm, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

I ticket di autenticazione di Forms possono essere generati manualmente utilizzando la classe FormsAuthenticationTicket. Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

In che modo la scadenza dei cookie e la scadenza dei biglietti sono correlate?

In caso di cookie non persistente, se il ticket è scaduto, anche il cookie scadrà e l'utente verrà reindirizzato alla pagina di accesso. Dall'altro lato, se il ticket è contrassegnato come persistente, dove il cookie è archiviato nella casella client, i browser possono utilizzare lo stesso cookie di autenticazione per accedere al sito Web in qualsiasi momento. Tuttavia, è possibile usare il metodo FormsAuthentication.SignOut per eliminare i cookie persistenti o non persistenti in modo esplicito.

Per ulteriori informazioni sul metodo FormsAuthentication.SignOut, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxCon l'autenticazione dei moduli senza cookie, se il browser è chiuso, il ticket viene perso e nella successiva richiesta verrà generato un nuovo ticket.

Come funziona la scadenza scorrevole nel contesto dei cookie di autenticazione ticket e forms di autenticazione moduli?

La scadenza scorrevole funziona esattamente allo stesso modo!

Ecco un esempio: se si accede alla pagina di accesso alle 17:00 00:00:00, dovrebbe scadere alle 17:10 00:00:00 se l'attributo timeout è 10 e l'attributo slidingExpiration è impostato su TRUE. Ora, se una pagina Web viene nuovamente sfogliata alle 17:05 00:00:00, il periodo di timeout dei cookie e dei biglietti verrà reimpostato sulle 17:15 00:00:00 PM.

Nota Se si accede alla pagina Web prima che scada la metà del periodo di scadenza, la scadenza del ticket non verrà reimpostata. Ad esempio, se si accede nuovamente a una pagina Web alle 17:04 alle 00:00:00, il periodo di timeout dei cookie e dei ticket non verrà reimpostato.

Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Dove è possibile impostare il valore di timeout del cookie di autenticazione dei moduli e del ticket di autenticazione dei moduli?

L'unica impostazione possibile è nel file di Web.config o nel file Machine.config, nel tag> <forms. Questa modifica determinerà il periodo di timeout dell'autenticazione forms nel contesto di un ticket o un cookie, a meno che il ticket non venga generato manualmente.


<!-- Attributi forms:
name="[cookie name]" - Imposta il nome del cookie utilizzato per l'autenticazione forms.
loginUrl="[url]" - Imposta l'URL a cui reindirizzare il client per l'autenticazione.
protection="[All|Nessuna|Crittografia|Convalida]" - Imposta la modalità di protezione per i dati nel cookie.
timeout="[minutes]" - Imposta la durata del tempo per la validità del cookie (reimpostazione in ogni richiesta).
path="/" - Imposta il percorso del cookie.
requireSSL="[true|false]" - Il cookie di autenticazione forms deve essere inviato solo tramite SSL?
slidingExpiration="[true|false]" - Il cookie di autenticazione forms e il ticket devono essere riemessi se stanno per scadere?
--> Per ulteriori informazioni, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxSe il ticket viene generato manualmente utilizzando la classe FormsAuthenticationTicket, il timeout può essere impostato tramite l'attributo Expiration. Questo valore eseguirà l'override del valore dell'attributo timeout specificato nei file di configurazione.

Per ulteriori informazioni sui membri FormsAuthenticationTicket, visitare il seguente sito Web MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Scenario di problema: l'autenticazione dei moduli potrebbe essere in timeout prima del valore dell'attributo timeout impostato nel file di configurazione

Se il ticket di autenticazione forms viene generato manualmente, la proprietà timeout del ticket sostituirà il valore impostato nel file di configurazione. Pertanto, se tale valore è minore del valore nel file di configurazione, il ticket di autenticazione forms scadrà prima del valore dell'attributo timeout del file di configurazione e viceversa. Si supponga ad esempio che il <forms>attributo timeout sia impostato su 30 nel file di Web.config e che il valore di scadenza del ticket sia impostato su 20 minuti. In questo caso, il ticket di autenticazione forms scadrà dopo 20 minuti e l'utente dovrà accedere di nuovo dopo tale data.

Collegamenti correlati

910439 Risolvere i problemi relativi all'autenticazione dei moduli
 

301240 Come implementare l'autenticazione basata su moduli nell'applicazione ASP.NET tramite C# .NET
 

Spero che queste informazioni siano risultate utili per ridurre la confusione in merito a ticket e cookie di autenticazione di ASP.NET forms. Ricorda che le colonne Support Voice sono adatte a te.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×