analisi e gestione della sicurezza di una complessa applicazione ...
analisi e gestione della sicurezza di una complessa applicazione ...
analisi e gestione della sicurezza di una complessa applicazione ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CAPITOLO IV - La <strong>sicurezza</strong> nelle web applications<br />
supporti d’immagazzinamento dei dati, in modo che lo sviluppatore non debba scrivere co<strong>di</strong>ce<br />
a basso livello. Se lo sviluppatore vuole immagazzinare i suoi dati in un formato <strong>di</strong>verso, ad<br />
esempio in un documento XML, può scrivere un proprio Membership Provider ad hoc. Salendo<br />
troviamo le Membership API che possono essere <strong>di</strong>rettamente utilizzate dalle applicazioni; in<br />
questo modo è possibile controllare lo stato <strong>della</strong> Membership oppure dell’utente con <strong>una</strong> serie<br />
<strong>di</strong> meto<strong>di</strong> e proprietà, le quali andranno a leggere dal file web.config qual è il provider<br />
installato nello specifico ed utilizzarlo. Quin<strong>di</strong> esse non sono legate alla presenza <strong>di</strong> un<br />
particolare provider. Alla fine abbiamo i controlli che usano le Membership API e che<br />
permettono <strong>di</strong> gestire le classiche operazioni <strong>di</strong> Login.<br />
La classe Membership provvede meto<strong>di</strong> statici per eseguire le azioni più frequenti, tra i quali:<br />
- CreateUser: aggiunge un utente allo store <strong>della</strong> Membership<br />
- DeleteUser: rimuove un utente dallo store <strong>della</strong> Membership<br />
- GeneratePassword: genera <strong>una</strong> password random <strong>della</strong> lunghezza specificata<br />
- GetAllUsers: carica <strong>una</strong> collection <strong>di</strong> oggetti MembershipUser<br />
- GetNumberOfUsersOnline: restituisce il numero <strong>di</strong> utenti collegati<br />
- GetUser: carica un singolo oggetto MembershipUser che rappresenta un utente<br />
- UpdateUser: aggiorna le informazioni per uno specifico utente<br />
- ValidateUser: valida il login sulla base <strong>di</strong> username e password verificando che siano corrette<br />
La classe MembershipUser invece si occupa <strong>della</strong> <strong>gestione</strong> delle informazioni utente come la<br />
password, oppure delle domande per recuperare password smarrite.<br />
2. ROLES API<br />
Con lo stesso spirito <strong>di</strong> Membership API, vale a <strong>di</strong>re quello <strong>di</strong> favorire la semplicità<br />
d’implementazione <strong>di</strong> funzionalità ripetitive, Roles API fornisce l’infrastruttura necessaria ad<br />
aggiungere anche il supporto per i ruoli applicativi all’utente.<br />
Il Role Manager ci abilita alla <strong>gestione</strong> in automatico <strong>della</strong> <strong>sicurezza</strong> a ruoli basato sulla logica<br />
a provider, con 3 provider <strong>di</strong> default:<br />
1. AuthorizationStoreRoleProvider (per l’e<strong>di</strong>tabilità, cioè la <strong>gestione</strong> dei ruoli)<br />
81