Condividi tramite


Autenticazione Internet

Le classi System.Net supportano vari meccanismi di autenticazione client, inclusi i metodi standard di autenticazione Internet di base, classificata (digest) e negoziale, NTLM e Kerberos, nonché metodi personalizzati creati dall'utente.

Le credenziali di autenticazione sono memorizzate nelle classi NetworkCredential e CredentialCache, che implementano l'interfaccia ICredentials. Quando a una di queste classi vengono richieste credenziali viene restituita un'istanza della classe NetworkCredential. Il processo di autenticazione è gestito dalla classe AuthenticationManager e l'effettivo processo di autenticazione è eseguito da una classe dei moduli di autenticazione che implementa l'interfaccia IAuthenticationModule. Per poter utilizzare i moduli di autenticazione personalizzati è necessario registrarli con AuthenticationManager. I moduli per i metodi di autenticazione di base, classificata, negoziale, NTLM e Kerberos sono registrati per impostazione predefinita.

NetworkCredential consente di memorizzare un insieme di credenziali associate a una singola risorsa Internet identificata da un URI e di restituire tali credenziali in risposta a qualsiasi chiamata al metodo GetCredential. La classe NetworkCredential è in genere utilizzata da applicazioni che accedono a un numero limitato di risorse Internet oppure da applicazioni che utilizzano lo stesso insieme di credenziali in tutti i casi.

La classe CredentialCache consente di memorizzare un insieme di credenziali per varie risorse Web. Quando viene chiamato il metodo GetCredential, da CredentialCache viene restituito l'insieme di credenziali corretto, come specificato dall'URI della risorsa Web e dallo schema di autenticazione richiesto. Nelle applicazioni in cui si utilizzano varie risorse Internet con schemi di autenticazione differenti si traggono notevoli vantaggi dall'utilizzo della classe CredentialCache, poiché essa consente di memorizzare tutte le credenziali e di fornirle quando necessario.

Quando una risorsa Internet richiede l'autenticazione, tramite il metodo WebRequest.GetResponse viene inviata la WebRequest ad AuthenticationManager insieme alla richiesta delle credenziali. La richiesta viene quindi autenticata in base al seguente processo:

  1. Tramite AuthenticationManager viene chiamato il metodo Authenticate su ciascun modulo di autenticazione registrato secondo l'ordine di registrazione. Viene quindi utilizzato il primo modulo che non restituisce null per eseguire il processo di autenticazione. I dettagli di tale processo variano a seconda del tipo di modulo di autenticazione interessato.
  2. Al termine del processo di autenticazione dal modulo di autenticazione viene restituita una classe Authorization alla WebRequest che contiene le informazioni necessarie per accedere alla risorsa Internet.

Alcuni schemi di autenticazione consentono di autenticare un utente senza dover prima effettuare la richiesta di una risorsa. È possibile ridurre i tempi di attesa di un'applicazione tramite la preautenticazione dell'utente con la risorsa, eliminando così almeno un percorso di andata e ritorno al server. In alternativa è possibile eseguire l'autenticazione durante l'avvio del programma, in modo da ridurre i tempi di attesa in seguito. Per gli schemi di autenticazione che possono avvalersi della preautenticazione la proprietà CanPreAuthenticate deve essere impostata su true.

Vedere anche

Autenticazione di base e classificata | Autenticazioni NTLM e Kerberos | Protezione Internet