2009-06-03 19 views
5

Ich habe Probleme, OpenID für eine Windows Azure-Anwendung zu verwenden. Ich verwende zur Zeit DotNetOpenAuth (früher war es DotNetOpenID) und zuerst hatte ich ein Problem mit dem Relay-Schritt, da Azure intern Port 20000 verwendet und dieser hin und her gereicht wurde. Ich habe einen Workaround dafür gefunden (ich schreibe einen Blogeintrag dafür).Die beste Methode zur Verwendung der OpenID-Authentifizierung mit Azure?

Das nächste Problem ist, wenn Sie die App auf einer Webfarm (mehrere Instanzen) ausführen, müssen Sie Ihren eigenen "benutzerdefinierten Speicher" für DotNetOpenAuth schreiben und Daten in einer Datenbank speichern. Dies ist ein Schmerz zu schreiben.

Es muss einen einfacheren Weg geben. Einer der Azure Services vielleicht? Hat jemand erfolgreich eine Webanwendung ausgeführt, die sich mit OpenID authentifiziert und auf Azure ausgeführt wird? Was ist der beste oder empfohlene Weg?

Antwort

3

Der einfachste Weg, um es in Gang zu bringen, ist überhaupt keinen Speicher zu verwenden. Sie können Stateless = true für eines der Anmeldesteuerelemente festlegen, wenn Sie sie verwenden, oder null an den OpenIdRelyingParty-Konstruktor übergeben. Dies versetzt Ihre Website in den statuslosen oder "dummen" Modus der OpenID. Es ist etwas langsamer für Benutzer, um sich anzumelden (wenn Sie überhaupt bemerken) und Sie vermeiden, diese Datenbankspeicherklasse zu schreiben.

Alternativ können Sie vote for more pre-written data stores, including one for Azure auf UserVoice.

Übrigens, die Azure port problem should have been fixed in DotNetOpenAuth v3.1. Wenn es nicht war, bitte reaktivieren Sie dieses Ticket.

+0

Ich übergab NULL in den OpenIdRelyingParty-Konstruktor wie Sie vorgeschlagen und es hat funktioniert. Der Dumb-Modus ist großartig. Es ist wahrscheinlich die gleiche Geschwindigkeit, weil ich sonst eine Datenbanksuche machen müsste. Das URL-Problem ist ebenfalls behoben, ich habe v3.0 verwendet. Vielen Dank! –

Verwandte Themen