Isolated storage: come funziona?

Salve lettore, in questo articolo voglio parlarti di che cosa sia l’isolated storage e di come tu possa utilizzarlo tramite un esempio.

Isolated storage è una funzionalità per proteggere dati sensibili, come ad esempio password, chiavi di licenza, token in Microsoft Business Central. Utilizzando questa funzionalità non è possibile accedere esternamente a questi dati, volendo nemmeno tra app.

Isolated storage fa riferimento all’omonima tabella. Tramite le funzioni che ci mette a disposizione AL language, possiamo agire solo sui campi Key e Value. 

Per vederne il funzionamento, faremo una piccola app, dove, per ID pagina (che sarà la nostra chiave) memorizzeremo una password; che poi dovremo digitare all’apertura di essa.

Creiamo una semplice tabella dove, oltre all’utente, inseriamo l’Id della pagina che vogliamo gestire e la password. In particolare al validate del campo password.

Per prima cosa, verifichiamo se esiste già la chiave tramite la funzione Contains. Da notare che come DataScope abbiamo messo User cioè l’Isolated Storage per questa applicazione che abbiamo fatto lavora sull’utente. Gli altri valori possono essere: Company, CompanyAndUser, Module.

Con la funzione SetEncrypted impostiamo il nostro record Isolated Storage con l’encriptazione se abilitata da sistema (altrimenti si può usare anche la funzione Set).

Dopo aver inserito il record di setup, vediamo come troviamo la nostra tabella Isolated Storage.

Come puoi vedere, il sistema ha creato automaticamente un record nella tabella con il valore della password criptato.

Creiamo, poi, una pagina di dialogo dove ci viene chiesta la password e alla pressione di OK viene fatto il controllo della password.

Da notare che occorre utilizzare la funzione Get per farsi restituire il valore in base alla chiave e poi confrontarlo col testo della password immesso. A questo punto non ci rimane che sviluppare una codeunit che all’evento OnOpenPage della pagina chiami questa pagina di dialogo.

L’effetto che avremo è il seguente:

Se immettiamo la password sbagliato, il sistema ci avvisa e non ci farà aprire la pagina della lista articoli.

Come avrai notato, in ogni funzione che chiama IsolatedStorage ho messo l’attributo [NonDebuggable], questo direi che è una best practice perché quando si lavora con i dati criptati è buona norma non far debuggare lo stream che passa.

Spero che questo articolo ti abbia dato un nuovo spunto su possibili sviluppi che sfruttano Isolated Storage.

Lascia una risposta