Abbiamo già affrontato in precedenza il tema dell'autenticazione e della sicurezza, parlando di come Windows Hello aiuti ad identificare l'utente senza però richiedere l'uso di username e password, ma mantenendo altissimi gli standard di sicurezza. Parlando di Windows Hello abbiamo però parlato solo di una tipologia di autenticazione, quella basata sul riconoscimento facciale, ma abbiamo completamente tralasciato un altro pezzo che riguarda un settore che sta crescendo molto, visibile soprattutto nei nuovi device che vengono rilasciati in questo periodo: il riconoscimento biometrico tramite lettura d'impronte.
All'interno di Windows 10 ci sono le API di Windows.Security.Credentials che gestiscono tutta la parte di autenticazione per noi, così che ci si debba preoccupare solo della logica applicativa e non del riconoscimento stesso:
private async Task<bool> AuthenticateWithFingerprintAsync() { try { // controllo della disponibilità del device var isAvailable = await UserConsentVerifier.CheckAvailabilityAsync(); // device disponibile all'uso if (isAvailable == UserConsentVerifierAvailability.Available) { // verifica dell'utente var consentResult = await UserConsentVerifier.RequestVerificationAsync("La mia app vuole assicurarsi che sei tu, Matteo..."); // utente riconosciuto if (consentResult == UserConsentVerificationResult.Verified) return true; } else { await new MessageDialog($"Non è stato possibile autenticarsi. Stato: {isAvailable}").ShowAsync(); } } catch (Exception ex) { await new MessageDialog($"Si è verificato un errore durante la richiesta: {ex}").ShowAsync(); } return false; }
Come si può vedere dall'esempio, il codice è molto simile a quanto abbiamo già visto in precedenza nello script relativo a Windows Hello: le API sono esattamente le stesse ma è il sistema operativo a prendersi carico di gestire i device disponibili e di capire con una certa accuratezza se il device è libero, se è stato bloccato da group policy oppure se l'utente è riconoscibile con una certa percentuale di sicurezza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Inizializzare i container in Azure Container Apps
Linting di un Dockerfile con un workflow di GitHub
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Sostituire la GitHub Action di login su private registry
Implementare il throttling in ASP.NET Core
Eseguire operazioni con timeout in React
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Eseguire attività basate su eventi con Azure Container Jobs
Creare un'applicazione React e configurare Tailwind CSS
Creare alias per tipi generici e tuple in C#
Utilizzare un service principal per accedere a Azure Container Registry
Effettuare chiamate con versioning da Blazor ad ASP.NET Core