In un mondo sempre più connesso, diventa via via più normale avere tanti account creati per utilizzare i vari servizi di cui necessitiamo. Per questione di sicurezza, inoltre, non è consigliato condividere la stessa password su più servizi, così come è buona norma utilizzare password complesse: per questo diventa necessario l'uso di password manager oppure di servizi che ci ricordano quali password sono state utilizzate in un determinato contesto.
All'interno della Universal Windows Platform c'è il servizio del Credential Locker che si occupa proprio di salvare e recuperare le password in modo sicuro, ma non solo: è anche in grado di fare il roaming delle credenziali su tutti i device nella quale l'utente è loggato (tramite domain account) ed ha la nostra applicazione installata.
Per utilizzarlo è sufficiente creare un nuovo oggetto di tipo PasswordVault dove andremo ad aggiungere le PasswordCredentials, come mostrato nell'esempio seguente:
private void SaveCredentials(string username, string password) { var vault = new Windows.Security.Credentials.PasswordVault(); vault.Add(new Windows.Security.Credentials.PasswordCredential("Facebook", username, password)); } private void GetCredentials() { var vault = new Windows.Security.Credentials.PasswordVault(); var facebook = vault.FindAllByResource("Facebook"); // ... }
Sebbene dal codice sia piuttosto evidente che vengono salvati username e password, nulla vieta di salvare contenuti diversi, purché non siano blob di grandi dimensioni: il password manager nonostante il meccanismo di roaming automatico non va ad intaccare la quota di 100kb, pertanto possiamo aggiungere tutti i valori necessari, ma non bisogna approfittarsene poiché questo sistema diventerebbe inefficiente. Va considerato inoltre che per mantenere l'efficienza, non si possono salvare più di dieci valori per applicazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare la script injection nelle GitHub Actions
Effettuare il binding di date in Blazor
Definire stili a livello di libreria in Angular
Creazione di componenti personalizzati in React.js con Tailwind CSS
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Limitare le richieste lato server con l'interactive routing di Blazor 8
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Verificare la provenienza di un commit tramite le GitHub Actions
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
I più letti di oggi
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- ASP.NET 3.5 per tutti
- .NET Conference Italia 2023 - Milano e Online
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare Docker Compose con Azure App Service
- Creare più ambienti in un'applicazione Angular