2013-03-14 9 views
5

Korzystamy z prostego dostawcy członkostwa w ASP.NET MVC 4, a my korzystamy z klienta Facebooka, aby zapewnić wsparcie logowania do Facebooka (podobne do http://www.asp.net/mvc/overview/getting-started/using-oauth-providers-with-mvc).Prowadzenie prostego członkostwa Sesja OAuth Alive

Dostaliśmy to działa, ale sesja zawsze kończy się w ciągu jednego dnia, a my chcemy, aby logowanie było trwałe, aby użytkownik mógł się zalogować i korzystać z usługi tylko raz.

W out-of-the-box ExternalLoginCallback funkcji, ja próbuje ustawić parametr createPersistentCookie true, ale nie będzie utrzymać logowanie żyje. Oto rozmowa robię:

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

będę musiał ustawić plik cookie uwierzytelniania formularza ręcznie w celu realizacji trwałe logowanie? Czy jest jeszcze inny sposób na to, jednocześnie korzystając z gotowych funkcji logowania na Facebooku?

Odpowiedz

3

Urządzenie ASPXAUTH cookie służy do określania, czy użytkownik jest uwierzytelniany. Możesz śledzić czas wygaśnięcia za pomocą firebuga lub dowolnego innego narzędzia do debugowania w sieci. W twoim projekcie plik cookie jest ustawiony w ExternalLoginCallback. Oto przykładowy czas wygaśnięcia ważności ciasteczek.

Wszystko, co musiałem zrobić, aby działało, to używać SSL i zmieniać limit czasu ciasteczek w web.config. Oto przykład z limitem czasu ustawionym na 1 minutę. Nie zapomnij oznaczyć requireSSL na true.

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="1" requireSSL="true"/> 
</authentication> 

Ale w twoim przypadku uważam, że problem jest z krótkim żywo tokenu dostępu z Facebook (domyślny około 2h). W przypadku problemu z tokenem dostępu here is link, jak przedłużyć żywotność tokena dostępu.

+0

W rzeczywistości nie uzyskuję dostępu do danych na Facebooku po zakończeniu procesu logowania. Wygląda na to, że Prosty dostawca członkostwa ignoruje parametr "createPersistentCookie" w swojej nieoczekiwanej implementacji. – BlueSam

+0

Zmodyfikowałem wpis. –