2011-12-14 12 views
5

मैं एक POC लाइव कनेक्ट बाकी एपीआई का उपयोग कर पर काम कर रहा हूँ।लाइव कनेक्ट रेस्ट एपीआई: उपयोगकर्ता को साइन इन करना?

(यहाँ प्रलेखन: http://msdn.microsoft.com/en-us/windowslive/default)

लिंक से उदाहरण का उपयोग नीचे मैं कुछ कार्रवाई के लिए एक उपयोगकर्ता और अनुरोध सहमति प्रवेश करने में सक्षम हूँ।

हालांकि, मैं इस से संबंधित कई प्रश्न हैं:

  • मैं सहमति कैसे का अनुरोध छोड़ सकते हैं जब उपयोगकर्ता पहले से ही से पहले सहमति प्रदान कर दी है?
  • एप्लिकेशन रन के बीच 'access_token' को स्टोर करने का एक सहेजने का तरीका क्या है?
  • मैं बाकी एपीआई का उपयोग कर एकल साइन का उपयोग कैसे कर सकता हूं? में

हस्ताक्षर: http://msdn.microsoft.com/en-us/windowslive/hh278363#rest

धन्यवाद!

उत्तर

1
  • यदि उपयोगकर्ता ने पहले आपको जिस सहमति की आवश्यकता है, तो लाइव उपयोगकर्ता को फिर से देने के लिए संकेत नहीं देगा। आपको मैन्युअल रूप से छोड़ने की आवश्यकता नहीं है।
  • मुझे नहीं पता कि आपका प्लेटफॉर्म क्या है, लेकिन आप अपने ऐप के भंडारण को अलग या एन्क्रिप्टेड बनाने के लिए कुछ भी ढूंढ सकते हैं। महत्वपूर्ण बात यह है कि टोकन का समय समाप्त हो गया है। आप माइक्रोसॉफ्ट द्वारा प्रदान किए जाने वाले नियंत्रक का उपयोग करने पर भी विचार कर सकते हैं, जो लाइव लॉगिन से संबंधित सभी चीजों को संभाल सकता है। यहाँ मेरी WP8 उदाहरण है:

XAML फाइल में इस जोड़ें:

<Controls:SignInButton Grid.Row="0" ClientId="yourid" Scopes="wl.offline_access wl.skydrive_update" HorizontalAlignment="Right" VerticalAlignment="Bottom" SessionChanged="OnSessionChanged" 
           Margin="0,0,0,0" Width="160" Height="70" Background="Transparent" BorderBrush="{StaticResource TransparentBrush}" /> 

इससे पहले, एक ही फाइल को यह पंक्ति जोड़ें:

xmlns:Controls="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls" 

और नियंत्रण की तरह दिखाई देगा यह: enter image description here

यह स्वचालित रूप से उपयोगकर्ता लॉगिन या साइन आउट के रूप में अपडेट हो जाएगा।

अपने सी # कोड में, यह करने के लिए OnSessionChanged ईवेंट हैंडलर जोड़ें:

private void OnSessionChanged(object sender, LiveConnectSessionChangedEventArgs e) 
    { 
     //sign in 
     if (e.Error != null) 
     { 
      MessageBox.Show(e.Error.Message); 
      return; 
     } 

     if (e.Status == LiveConnectSessionStatus.Connected) 
     { 
      ((App) Application.Current).Session = e.Session; 
      connectClient = new LiveConnectClient(((App) Application.Current).Session); 
         } 
     } 
    } 
  • यह लेख शायद उपयोगी herehere
0

क्या आपने यहां एक नज़र डाली है: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin? यह पर सहमति अनुरोध और एकल साइन लंघन संभाल लेंगे (अर्थात, अगर उपयोगकर्ता तो लाइव में प्रवेश किया गया प्रमाणन पृष्ठ पर पहुंचता है, प्रमाणन स्वचालित रूप से जगह उपयोगकर्ता किसी भी अतिरिक्त कदम उठाए बिना लेता है)।

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