02.06.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!