2010-03-01 19 views
15

Sto cercando di capire come ottenere DotNetOpenAuth (http://www.dotnetopenauth.net/) che lavorano nel mio WebForms appDotNetOpenAuth: Webforms, Guida introduttiva

non capisco da dove cominciare. Ho un OpenIDSelector sul mio Login.aspx che ti consente di scegliere google o Yahoo. Puoi sceglierne uno, poi compare un popup e ti consente di accedere. Una volta effettuato l'accesso, il programma si blocca perché sta tentando di fare qualcosa con un database ???

Non posso semplicemente usare un controllo (come OpenIDSelector) e tornare indietro che l'utente è stato autenticato, ottenere il ClaimedID e gestire il resto da solo?

MODIFICA: si sta tentando di iniziare con OpenID in Webforms? Vai qui ...

https://github.com/DotNetOpenAuth/DotNetOpenAuth/wiki/Creating-an-openid-relying-party-%28programatically%29

risposta

0

1 - identificatore dichiarato è quello che stai cercando. il problema è che Google e simili usano "identità diretta", il che significa che l'identificatore richiesto sarà collegato al regno da cui vieni. risultato netto per te: lo stesso utente può entrare con più identificativi rivendicati diversi.

2 e 3 non so - presumo che si tratti di una funzionalità pronta all'uso che DNOA fa, ma non ci ho giocato.

4 - non che ho trovato. la dnoa copre tutti i casi di cui devi preoccuparti.

+0

Non ho idea di come ottenere questo risultato senza il progetto di modello, che sembra davvero gonfio. Conosci una risorsa? – Jason

+0

sì - c'è un sacco di documenti sul sito DNOA. vedere la risposta di Andrew. – kolosy

5

Non è necessario utilizzare il modello di progetto. È possibile rilasciare il controllo OpenIDSelector in qualsiasi app Web e funzionerà nel minimalista "dammi il nome utente" in modo semplice e immediato. Non ci sono dipendenze SQL di qualsiasi tipo nella libreria DotNetOpenAuth. Gestisci l'evento OpenIdSelector.LoggedIn e otterrai il nome utente desiderato.

Il modello di progetto, per quanto possa sembrare eccessivo, presuppone che si disponga effettivamente di dati utente da memorizzare e che si desideri fornire un log-in e un'esperienza di gestione degli account ragionevoli. Funziona anche nelle web farm e negli ambienti ospitati nel cloud. Se stai iniziando da zero questo è un ottimo modo per iniziare, anche se naturalmente il codice che viene fornito si applica meno di altri, motivo per cui hai la fonte - in modo che tu possa cambiarlo.

Sì, il modello di progetto include una dipendenza da un database. Utilizza le Linq-to-Entities quindi qualsiasi database con un provider Entities funziona, non solo SQL Server. E viene fornito con lo schema per quel database integrato. Basta eseguire setup.aspx e dovrebbe creare il database per te nell'installazione SQLExpress locale.

+1

http://www.dotnetopenauth.net/developers/code-snippets/programmatic-openid-relying-party/ è quello che stavo cercando. Esattamente quello di cui avevo bisogno. Purtroppo non vedo un modo ovvio per trovarlo da casa dotnetopenauth.net (l'ho trovato sulla mia 500esima ricerca su google cercando di capire come farlo funzionare). Questo è quello che immagino sarebbe in una sezione "Getting Started". – Jason

+1

Buone risposte, CccTrash. Troverò un modo per renderlo più percorribile. –