L'interfaccia IIdentity è usata per definire informazioni relative all'utente. Generalmente, l'utente che sta eseguendo il codice. IIdentity definisce tre proprietà read-only:
- Name : Una stringa che definisce il nome logico dell'utente nel formato dominio\nome.
- AuthenticationType : Una stringa che definisce la tipologia di autentificazione usata per verificare l'utente (per esempio Kerebos e Passport).
- 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.