2011-01-16 7 views
5

Sto usando Facebook Connect nella mia applicazione. Tutto funziona abbastanza bene. Tuttavia sulla mia pagina in costruttore, voglio sapere che l'utente ha già effettuato l'accesso a Facebook, voglio visualizzare una pagina diversa piuttosto che una pagina di accesso. Come posso fare questo? Sto usando Facebook Developer Toolkit 3.1 e Silverlight 4.0. In breve, voglio sapere se l'utente è collegato a Facebook o no.Come posso sapere che l'utente ha già effettuato l'accesso su Facebook?

Grazie in anticipo :)

risposta

4

Nota - questo è in MVC - se si sta utilizzando Silverlight, potrebbe essere necessario modificare parte del codice.

Ho usato quanto segue. Nella mia "pagina di destinazione" Ho il seguente:

if (Request.Cookies["AuthenticatedViaFacebook"] != null) 
{ 
    string val = Server.HtmlEncode(Request.Cookies["AuthenticatedViaFacebook"].Value); 
    if (val == "true") 
    { 
     return RedirectToAction("Login", "Account"); 
    } 
} 

Nella pagina Account/Login Faccio un rapido ri-diretta con i tuoi amici:

var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current); 
oAuthClient.RedirectUri = new Uri(ConfigurationManager.AppSettings["RedirectUrl"]); 
var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", returnUrl } }); 
return Redirect(loginUri.AbsoluteUri + "&scope=user_birthday"); 

Se torna succesfull - Autorizzo il utente e inviarli al sistema.

Memorizzo l'ID di Facebook nel mio database, quindi so di che utente si tratta.

Non conosco un modo più veloce o migliore per farlo - questo funziona abbastanza rapidamente. Si vede l'url della pagina di Facebook per un secondo circa e quindi si è nel proprio sistema

Problemi correlati