L'interfaccia IIdentity è usata per definire informazioni relative all'utente. Generalmente, l'utente che sta eseguendo il codice. IIdentity definisce tre proprietà read-only:

  1. Name : Una stringa che definisce il nome logico dell'utente nel formato dominio\nome.
  2. AuthenticationType : Una stringa che definisce la tipologia di autentificazione usata per verificare l'utente (per esempio Kerebos e Passport).
  3. IsAuthenticated : Un valore  booleano che indica lo stato di autentificazione dell'utente.

.NET fornisce queste quattro implentazioni di IIdentity:

  • GenericIdentity (sec30)
  • WindowsIdentity (sec31)
  • FormsIdentity (sec32)
  • PassportIdentity (sec33)

Per ora parleremo di GenericIdentity. Come specificato dal nome GenericIdentity non è direttamente collegato ad alcun protocollo per autentificare l'utente in questione. Crearne una è molto semplice.

IIdentity soloNome = new GenericIdentity("amarziali"); IIdentity senzaNome = new GenericIdentity(""); IIdentity nomeEtipo = new GenericIdentity("amarziali", "Kerebos"); IIdentity nomeTipoNT = new GenericIdentity("amarziali", "NTLM");

Come si può vedere è possibile passare due diverse informazioni. E' possibile passare il nome dell'identità e terminare qui il processo, oppure, specificarne anche il metodo di autentificazione.

La cosa interessante, e sicuramente da ricordare, è che le GenericIdentity autenticano solo le identità per cui una username è stata fornita. Questo può essere facilmente verificando il valore booleano della proprietà isAuthenticated (di cui abbiamo parlato poco prima).

soloNome.isAuthenticated.ToString() // True senzaNome.isAuthenticated.ToString() // False nomeEtipo.isAuthenticated.ToString() // True nomeTipoNT.isAuthenticated.ToString() // True

Domani, sperando che continui questo bellissimo tempo, parleremo di WindowsIdentity e FormsIdentity.