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
Eseguire script pre e post esecuzione di un workflow di GitHub
Ordinare randomicamente una lista in C#
Effettuare il binding di date in Blazor
Recuperare l'ultima versione di una release di GitHub
Limitare le richieste lato server con l'interactive routing di Blazor 8
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Utilizzare i primary constructor in C#
Utilizzare Model as a Service su Microsoft Azure
Gestire la cancellazione di una richiesta in streaming da Blazor
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Visualizzare contenuti Fullscreen con HTML5
- Disabilitare un bottone in una pagina HTML pensando all'accessibilità
- Realizzare siti sicuri con ASP.NET Web Pages
- Focus dei tag input con HTML5
- Disponibile la beta di Silverlight 5
- Ricavare lo spazio occupato su disco dal nostro sito