Quando sviluppiamo un’applicazione, può capitare di doversi accertare che l’utente sia effettivamente l’owner dell’account in uso. L’unico modo per fare ciò è richiedere le credenziali di accesso e controllare che siano valide.
In questo breve articolo vediamo come sia facile in C# controllare la validità di un nome utente e password, interrogando il servizio di accesso di Windows.
Importiamo gli Assembly
Per prima cosa, è necessario importare nel nostro progetto 2 assembly fondamentali:
- System.Security.Principal;
- System.DirectoryServices.AccountManagement;
Se la prima è normalmente già presente tra i riferimenti di un qualsiasi progetto .NET Framework, per la seconda è necessario aprire la finestra di Gestione riferimenti e, dopo aver selezionato l’assembly, premere OK.

La Soluzione
Importati gli assembly, è già ora di presentare il codice.
Partiamo col richiamare tutti i riferimenti corretti:
A questo punto, possiamo richiamare il codice che fa il lavoro sporco:
Conclusioni
Come avrai potuto notare, per specificare il nome utente corretto ho fatto uso della classe nativa WindowsIdentity che recupera le informazioni esatte riguardanti dominio e username. In questo modo siamo certi che il primo parametro passato al metodo ValidateCredentials si riferisca esattamente all’utente che sta eseguendo l’applicativo.
Scrivi un commento