2013-03-14 9 views
5

Stiamo utilizzando il Simple Membership Provider con ASP.NET MVC 4 e stiamo utilizzando il client di Facebook per fornire supporto per l'accesso a Facebook (simile a http://www.asp.net/mvc/overview/getting-started/using-oauth-providers-with-mvc).Mantenimento dell'abbonamento semplice OAuth Session Alive

Abbiamo ottenuto questo funzionamento, ma la sessione scade sempre entro un giorno, e vogliamo che il login sia persistente, così l'utente può accedere e utilizzare il servizio solo una volta.

Nella funzione out-of-the-box ExternalLoginCallback, sto tentando di impostare il parametro createPersistentCookie al vero, ma non mancherà di tenere vivo il login. Ecco la chiamata che sto facendo:

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

Am I andando ad avere per impostare manualmente il cookie di autenticazione moduli al fine di realizzare un accesso permanente? O c'è un altro modo per farlo, approfittando ancora della funzionalità di login di Facebook pronta all'uso?

risposta

3

Il ASPXAUTH cookie viene utilizzato per determinare se un utente è autenticato. Puoi tenere traccia dei tempi di scadenza con firebug o qualsiasi altro strumento di debug web. Nel tuo progetto il cookie è impostato in ExternalLoginCallback. Ecco un esempio di timeout di scadenza dei cookie per la configurazione dello schermo.

Tutto quello che dovevo fare per farlo funzionare era usare SSL e cambiare il timeout dei cookie in web.config. Ecco un esempio con timeout impostato su 1 minuto. Non dimenticare di contrassegnare requireSSL su true.

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

ma nel tuo caso credo che il problema è con breve token di accesso diretta da facebook (impostazione predefinita intorno 2h). Nel caso in cui il problema sia con il token di accesso here is link come prolungare la durata del token di accesso.

+0

In realtà non accedo ai dati di Facebook dopo il processo di accesso. Sembra che il Simple Membership Provider ignori il parametro "createPersistentCookie" nella sua implementazione out-of-the-box. – BlueSam

+0

Ho modificato post. –