2011-12-14 16 views
5

Sto lavorando su un poc utilizzando l'API di Live Connect Rest.API di Live Connect Rest: firma dell'utente?

(Documentazione qui: http://msdn.microsoft.com/en-us/windowslive/default)

Utilizzando l'esempio dal link sottostante sono in grado di effettuare il login di un utente e il consenso richiedente per determinate azioni.

Tuttavia, ho alcune domande relative a questo:

  • Come posso saltare richiesta del consenso quando l'utente ha già concesso il consenso prima?
  • Che cos'è un modo per salvare il 'access_token' tra le esecuzioni dell'applicazione?
  • Come posso utilizzare il single sign on utilizzando l'API Rest?

Firma in: http://msdn.microsoft.com/en-us/windowslive/hh278363#rest

Grazie!

risposta

1
  • Se l'utente ha precedentemente concesso il consenso necessario, Live non richiederà all'utente di concedere nuovamente. Non è necessario saltare manualmente.
  • Non so quale sia la tua piattaforma, ma potresti trovare in qualche modo lo spazio di archiviazione della tua app isolato o crittografato. Ciò che è importante è che il token abbia un tempo di scadenza. Si può anche prendere in considerazione l'utilizzo di un controller fornito da Microsoft, in grado di gestire tutte le operazioni relative all'accesso Live. Ecco il mio esempio WP8:

Aggiungere questo nel file 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}" /> 

Prima di allora, aggiungere questa linea allo stesso file:

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

E il controllo sarà simile this: enter image description here

Si aggiornerà automaticamente come accesso utente o disconnessione.

Nel vostro codice C#, aggiungere il gestore di eventi OnSessionChanged ad esso:

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

Hai dato un'occhiata qui: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin? Gestirà l'omissione della richiesta di consenso e il single sign-on (ad esempio se l'utente è connesso a Live quindi viene indirizzato alla pagina di autenticazione, l'autenticazione avviene automaticamente senza che l'utente intraprenda alcuna azione aggiuntiva).