2011-01-16 13 views
5

Używam Facebook Connect w mojej aplikacji. Wszystko działa całkiem dobrze. Jednak na mojej stronie w konstruktorze chcę wiedzieć, że użytkownik już zalogował się na Facebooku. Chcę wyświetlać inną stronę niż stronę logowania. Jak mogę to zrobić? Używam Facebook Developer Toolkit 3.1 i Silverlight 4.0. Krótko mówiąc, chcę wiedzieć, czy użytkownik jest podłączony do Facebooka, czy nie.Skąd wiadomo, że użytkownik jest już zalogowany na Facebooku?

góry dzięki :)

Odpowiedz

4

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

Powiązane problemy