2011-01-16 15 views
5

मैं अपने आवेदन में फेसबुक कनेक्ट का उपयोग कर रहा हूं। सब कुछ अच्छी तरह से काम करता है। हालांकि मेरे पेज पर कन्स्ट्रक्टर में, मैं जानना चाहता हूं कि पहले से ही फेसबुक में लॉग इन किया गया है, मैं लॉगिन पेज के बजाए एक अलग पेज प्रदर्शित करना चाहता हूं। मैं यह कैसे कर सकता हूँ? मैं फेसबुक डेवलपर टूलकिट 3.1 और सिल्वरलाइट 4.0 का उपयोग कर रहा हूं। संक्षेप में, मैं जानना चाहता हूं कि उपयोगकर्ता फेसबुक से कनेक्ट है या नहीं।मुझे कैसे पता चलेगा कि उपयोगकर्ता पहले से ही फेसबुक पर लॉग इन है?

अग्रिम धन्यवाद :)

उत्तर

4

नोट - इस MVC में है - अगर आप Silverlight का उपयोग कर रहे हैं, तो आप कोड के कुछ संशोधित करने की आवश्यकता हो सकती है।

मैंने निम्नलिखित का उपयोग किया है।

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"); 

इसे वापस succesfull आता है - मैं प्रमाणीकरण करें:

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

खाता/लॉग इन पेज मैं फेसबुक के लिए एक त्वरित फिर से प्रत्यक्ष कर में: मेरी "लैंडिंग पृष्ठ" में मैं निम्नलिखित है उपयोगकर्ता और उन्हें सिस्टम में भेजें।

मैं अपने डेटाबेस में फेसबुक आईडी स्टोर करता हूं, इसलिए मुझे पता है कि यह कौन सा उपयोगकर्ता है।

मुझे यह करने का एक तेज, या बेहतर तरीका पता नहीं है - यह बहुत तेज़ी से काम करता है। आप एक या दूसरे के लिए फेसबुक पेज यूआरएल देखते हैं और फिर आप अपने सिस्टम में हैं

संबंधित मुद्दे