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
fonte
2011-05-31 12:25:13