2013-03-14 6 views
5

Wir verwenden den einfachen Mitgliedschaftsanbieter mit ASP.NET MVC 4 und verwenden den Facebook-Client, um die Facebook-Anmeldung zu unterstützen (ähnlich wie http://www.asp.net/mvc/overview/getting-started/using-oauth-providers-with-mvc).Einfache Mitgliedschaft aufrechterhalten OAuth-Sitzung

Wir haben das funktioniert, aber die Sitzung läuft immer innerhalb eines Tages ab, und wir möchten, dass die Anmeldung dauerhaft ist, damit sich der Benutzer nur einmal anmelden und den Dienst nutzen kann.

In der out-of-the-box ExternalLoginCallback Funktion, bin ich versuche, die createPersistentCookie Parameter auf true gesetzt, aber es wird die Login am Leben nicht zu halten. Hier wird der Anruf Ich bilde:

OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: true) 

Bin ich gehen zu müssen, das Formularauthentifizierungscookie manuell einzustellen, um eine persistente Login zu erreichen? Oder gibt es eine andere Möglichkeit, dies zu tun und trotzdem die Vorteile der Out-of-the-Box-Facebook-Login-Funktion zu nutzen?

Antwort

3

Die ASPXAUTH cookie wird verwendet, um festzustellen, ob ein Benutzer authentifiziert ist. Sie können die Ablaufzeit mit Firebug oder einem anderen Web-Debug-Tool verfolgen. In Ihrem Projekt wird der Cookie in ExternalLoginCallback gesetzt. Hier sehen Sie das Ablaufdatum des Cookies für den Ablauf der Beispielanzeige.

Alles, was ich tun musste, um es zum Laufen zu bringen, war SSL zu verwenden und das Cookie-Timeout in web.config zu ändern. Hier ist ein Beispiel mit einer Zeitüberschreitung von 1 Minute. Vergessen Sie nicht, requireSSL auf true zu markieren.

Aber in Ihrem Fall glaube ich, das Problem ist mit kurzen Live-Access-Token von Facebook (Standard ca. 2h). Falls das Problem mit dem Zugriffstoken here is link ist, wie die Lebensdauer des Zugriffstokens verlängert werden kann.

+0

Ich bin tatsächlich nicht auf Facebook-Daten zugreifen, nachdem der Login-Prozess passiert. Es sieht so aus, als ob der Simple-Membership-Provider den Parameter "createPersistentCookie" in seiner Standardimplementierung ignoriert. – BlueSam

+0

Ich habe Post geändert. –