Sie haben das wahrscheinlich schon vorher gelöst.
Ich muss in der Lage sein, offene ID in einer Umgebung zu verwenden, die keine Session-Stickiness hat. Die Server behalten die Header bei.
Ich verwende ASP.NET MVC und dotNetOpenId Version 3.2.0.9177. Obwohl die Authentifizierung auf der Website von Drittanbietern ohne Probleme verläuft, wenn ich die Antwort zurückgebe, bekomme ich einen Fehler und die Authentifizierung schlägt fehl.
Irgendwelche Gedanken?
Stateful
Die am besten optimierte Methode besteht darin, einen benutzerdefinierten Persistenzspeicher zu schreiben, der IRelyingPartyApplicationStore
für die "Secrets" implementiert, die OpenID RPs benötigen, und Ihre Instanz an den OpenIdRelyingParty(IRelyingPartyApplicationStore)
-Konstruktor weiterzugeben oder ihn in Ihrem web.config Datei .
Staatenlos
Eine viel einfachere Lösung, die für die meisten Szenarien ausreicht, ist die Verwendung des statuslosen Modus, sodass kein Status über die Server Ihrer Webfarm freigegeben werden muss.
Sie können den statuslosen Modus aktivieren, indem Sie OpenIdRelyingParty
über null
in als Ihre Anwendungsspeicherinstanz instanziieren. Der Aufruf des Standardkonstruktors führt dazu, dass DNOA den speicherinternen Speicher verwendet, der bei Serverfarmen unterbrochen wird, sodass der Standardkonstruktor nicht ausreicht.
Oder wenn Sie die ASP.NET-Steuerelemente verwenden, setzen Sie einfach Stateless = true
auf dem Steuerelement.
So aktivieren wir den zustandslosen Modus:
%Vor%Scheint so weit zu funktionieren, obwohl es für Andrew einen kleinen Performance-Hit gibt. Nicht sicher, dass das wichtig ist, seit Login ist eine ziemlich seltene Aktivität.
Mit DotNetOpenID sollten Sie in der Lage sein, den Zustand, den Sie während der Authentifizierung für den Client benötigen, über einen Cookie beizubehalten.
Bearbeiten: Ich habe keinen Beispielcode dafür, weil ich DotNetOpenID nie in einer sessionlosen Umgebung verwenden musste, aber ich würde diesen Link überprüfen, da er möglicherweise den Informationen, die Sie brauchen: Ссылка
Tags und Links asp.net-mvc dotnetopenauth load-balancing