by Sandro Vecchiarelli
4. April 2011 00:36
In pratica dopo la prima e la seconda parte, terminiamo questa serie di articoli commentando il codice della pagina riservata. Ricordiamo che siamo l'utente è arrivato qui dopo aver superato il vaglio dell'autenticazione di Google. Dopo il successo dell'autenticazione l'utente Google viene agganciato all'utente dell'applicazione (a cui ricordiamo abbiamo scelto di assegnargli lo stesso username che a sua volta coincide con la mail Google con cui si è autenticato). In virtù di questo possiamo a questo punto comportarci esattamente nello stesso modo con cui ci siamo sempre comportati con la Forms Authentication, sfruttando quindi le classi dei vari Roles/Membersip Providers:
Ormai mancano solo le conclusioni finali e ovviamente il link per scaricare il codice d'esempio. Abbiamo visto come attraverso il protocollo OpenID si riesca a far autenticare l'utente della nostra applicazione da un Provider Open ID compliant. Abbiamo scelto Google che ci offre il servizio che ci aspettiamo e ci restituisce un ID specifico per ciascun utente e altre informazioni che l'utente stesso autorizza a fornirci. La username che ci viene ritornata è esattamente quella che l'utente stesso ha usato per accedere a Google.
Una eccezione che vi mostro con un esempio concreto. Io ho un account Google (ne ho 3, ma uno in particolare rientra nella casistica che vi voglio illustrare) che ha come username sandro@live.it. Questo account ha associato ad esso una mail sandro.vecchiarelli@gmail.com. Nel caso in cui questo account facesse accesso al sito, Google NON restituisce lo username di accesso (sandrov@live.it), ma bensì sandro.vecchiarelli@gmail.com, per cui attenzione, sarà questo l'account da registrare sul nostro sito agganciato a quello di Google.
Codice
Affinchè il codice possa funzionare dovete ovviamente installarvi il DB di cui vi fornisco un semplice backup e ricordarvi di modificare il Web.Config per aggiustare la stinga di connessione al DB e all'entity framework corrispondente.
Qui trovate il DB e Qui trovate la Solution.
Buon codice a tutti
91a0cc7f-cfef-4666-952d-2d1df137e5af|2|5.0
Tags: OpenID, Google Authentication, Autenticazione Google, Oid, Open ID, Oauth, Open Auth, Web Authentication, ASP.NET Google Authentication, Federated Login, Claims, Relying Party