2011-12-14 16 views
5

Pracuję nad poc za pomocą interfejsu API Live Connect Rest.API Live Connect Rest: zaloguj użytkownika?

(Dokumentacja tutaj: http://msdn.microsoft.com/en-us/windowslive/default)

Na przykładzie z linku poniżej jestem w stanie zalogować się użytkownikowi i żądając zgody na pewnych działań.

Jednak mam kilka pytań z tym związanych:

  • Jak można pominąć żądania zgody, gdy użytkownik już wcześniej wyraziły zgodę?
  • Co to jest oszczędny sposób przechowywania "access_token" między uruchomieniami aplikacji?
  • Jak korzystać z pojedynczego logowania przy użyciu interfejsu API odpoczynku?

Podpisanie w: http://msdn.microsoft.com/en-us/windowslive/hh278363#rest

Dzięki!

Odpowiedz

1
  • Jeśli użytkownik udzielił uprzednio wymaganej zgody, usługa Live nie poprosi użytkownika o ponowne udzielenie zgody. Nie musisz pomijać ręcznie.
  • Nie wiem, jaka jest twoja platforma, ale może się zdarzyć, że Twoja aplikacja zostanie odizolowana lub zaszyfrowana. Ważne jest to, że token ma czas wygaśnięcia. Możesz także rozważyć użycie kontrolera dostarczonego przez Microsoft, który może obsłużyć wszystkie rzeczy związane z logowaniem na żywo. Oto mój przykład WP8:

Dodaj ten w pliku 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}" /> 

wcześniej, dodać tę linię do tego samego pliku:

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

i kontroli będzie wyglądać to: enter image description here

Zostanie ono automatycznie zaktualizowane jako logowanie użytkownika lub wylogowanie.

W swojej kod C#, dodać OnSessionChanged obsługi zdarzeń do niego:

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); 
         } 
     } 
    } 
0

Czy obejrzałeś tutaj: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin? Poradzi sobie z pominięciem żądania zgody i jednokrotnego logowania (tzn. Jeśli użytkownik jest zalogowany na żywo, następnie jest kierowany do strony auth, auth automatycznie odbywa się bez podejmowania przez użytkownika żadnych dodatkowych działań).

Powiązane problemy