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
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Miglioramenti nelle performance di Angular 16
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare Tailwind CSS all'interno di React: installazione
Creare un webhook in Azure DevOps
Utilizzare database e servizi con gli add-on di Container App
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Usare le collection expression per inizializzare una lista di oggetti in C#
Limitare le richieste lato server con l'interactive routing di Blazor 8
Implementare il throttling in ASP.NET Core
Migliorare la sicurezza dei prompt con Azure AI Studio