Uwaga - to jest w MVC - jeśli używasz Silverlight, być może trzeba zmodyfikować niektóre kodu.
Użyłem następujących. W moim „strony docelowej” Mam następujące:
if (Request.Cookies["AuthenticatedViaFacebook"] != null)
{
string val = Server.HtmlEncode(Request.Cookies["AuthenticatedViaFacebook"].Value);
if (val == "true")
{
return RedirectToAction("Login", "Account");
}
}
Na stronie Konto/Logowanie robię szybkie re-direct na Facebooku:
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");
Jeśli chodzi powrotem udana - Upoważniam użytkownika i wysłać je do systemu.
Przechowuję identyfikator facebook w mojej bazie danych, więc wiem, jaki to jest użytkownik.
Nie wiem o tym szybciej lub lepiej - działa to dość szybko. Przez jakiś czas widzisz adres URL strony na Facebooku, a następnie jesteś w swoim systemie