2009-06-03 17 views
5

Non riesco a far funzionare OpenID su un'applicazione Windows Azure. Attualmente sto usando DotNetOpenAuth (usato per essere DotNetOpenID) e per prima cosa ho avuto un problema con la fase di inoltro dal momento che Azure utilizza la porta 20000 internamente e che veniva trasmessa avanti e indietro. Ho trovato una soluzione per questo (scriverò un post sul blog per questo).Il modo migliore per utilizzare l'autenticazione OpenID con Azure?

Il problema successivo è quando si esegue l'applicazione su una Web farm (più istanze), è necessario scrivere il proprio "negozio personalizzato" per DotNetOpenAuth e salvare i dati in un database. Questo è un dolore da scrivere.

Deve esserci un modo più semplice. Forse uno dei servizi di Azure? Qualcuno ha eseguito correttamente un'app Web che esegue l'autenticazione con OpenID e viene eseguita su Azure? Qual è il modo migliore o consigliato?

risposta

3

Il modo più semplice per farlo funzionare è quello di non utilizzare affatto il negozio. Puoi impostare Stateless = true su uno dei controlli di accesso se li stai utilizzando oppure passare null al costruttore OpenIdRelyingParty. Questo mette il tuo sito web in OpenID stateless o in modalità 'stupida'. È leggermente più lento per gli utenti effettuare l'accesso (se si nota persino) ed evitare di dover scrivere quella classe dell'archivio di database.

In alternativa, è possibile vote for more pre-written data stores, including one for Azure su UserVoice.

A proposito, lo Azure port problem should have been fixed in DotNetOpenAuth v3.1. Se non lo fosse, riattiva il biglietto.

+0

Ho passato null nel costruttore OpenIdRelyingParty come suggerito e ha funzionato. La modalità stupida è fantastica. Probabilmente è la stessa velocità perché altrimenti dovrei fare una ricerca nel database. Anche il problema dell'URL è stato risolto, stavo usando v3.0. Grazie! –