2013-03-14 20 views
5

ASP.NET MVC 4 ile Basit Üyelik Sağlayıcısı'nı kullanıyoruz ve Facebook giriş desteği sağlamak için Facebook İstemcisini kullanıyoruz (http://www.asp.net/mvc/overview/getting-started/using-oauth-providers-with-mvc benzeri).Basit Üyelik Tutulması OAuth Session Alive

Bu çalışmayı gerçekleştirdik, ancak oturum her zaman bir gün içinde zaman aşımına uğruyor ve girişin kalıcı olmasını istiyoruz, böylece kullanıcı bu hizmeti yalnızca bir kez girebilir ve kullanabilir. out-of-the-box ExternalLoginCallback fonksiyonunda

, ben true createPersistentCookie parametreyi ayarlamak için çalışılıyor, ama hayatta giriş tutmaz. Burada çağrı yapıyorum edilir:

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

mıyım kalıcı giriş başarmak için elle form kimlik tanımlama ayarlamak zorunda olacak? Ya da kutu dışı Facebook oturum açma işlevinden faydalanırken bunu yapmanın başka bir yolu var mı?

cevap

3

ASPXAUTH cookie, kullanıcının kimliğinin doğrulanıp doğrulanmadığını belirlemek için kullanılır. Son kullanma saatini firebug veya başka bir web hata ayıklama aracıyla izleyebilirsiniz. Projenizde, çerez ExternalLoginCallback'de ayarlanmıştır. İşte, ekran tanımlama bilgisi tanımlama bilgilerinin süre aşımı süresi.

Ben çalışmaydı SSL kullanmak için yapmak ve web.config çerez zaman aşımını değiştirmek için ne gerekiyorsa onu tüm . Burada 1 dakikaya ayarlanmış zaman aşımı örneğidir. RequireSSL değerini true olarak işaretlemeyi unutmayın.

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

Ama senin için ben sorun facebook kısa canlı erişim belirteci (yaklaşık 2 h varsayılan) ile olduğuna inanıyoruz. Sorun, erişim belirteci here is link erişim değerinde ise, erişim belirtecinin kullanım ömrünün uzatılması.

+0

Giriş işleminden sonra aslında Facebook verilerine erişemiyorum. Basit Üyelik Sağlayıcısı, kutu dışı uygulamasında "createPersistentCookie" parametresini yoksayar. – BlueSam

+0

Yayını değiştirdim. –