2011-12-14 34 views
5

Estoy trabajando en un poc usando Live Connect Rest API.Live Connect Rest API: ¿Iniciar sesión en el usuario?

(Documentación aquí: http://msdn.microsoft.com/en-us/windowslive/default)

Usando el ejemplo desde el siguiente enlace soy capaz de iniciar sesión un usuario que solicita el consentimiento y para ciertas acciones.

Sin embargo, tengo varias preguntas relacionadas con esta:

  • ¿Cómo puedo Saltar solicitar el consentimiento cuando el usuario ya ha otorgado su consentimiento antes?
  • ¿Qué es una forma segura de almacenar el 'access_token' entre las ejecuciones de la aplicación?
  • ¿Cómo puedo utilizar el inicio de sesión único utilizando Rest API?

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

Gracias!

Respuesta

1
  • Si el usuario concedió previamente el consentimiento que necesita, Live no solicitará al usuario que otorgue nuevamente. No necesita saltear manualmente.
  • No sé cuál es su plataforma, pero es posible que encuentre de algún modo que el almacenamiento de su aplicación esté aislado o encriptado. Lo que es importante es que el token tenga un tiempo de caducidad. También puede considerar el uso de un controlador que proporciona Microsoft, que puede manejar todo lo relacionado con el inicio de sesión en vivo. Aquí está mi ejemplo WP8:

Añadir esta en el archivo 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}" /> 

Antes de eso, añadir esta línea en el mismo archivo:

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

y el control se parecerá esto: enter image description here

Se actualizará automáticamente cuando el usuario inicie sesión o cierre la sesión.

En su código C#, agregue el controlador de eventos OnSessionChanged a ella:

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); 
         } 
     } 
    } 
  • En este artículo tal vez útil herehere
0

Ha echado un vistazo aquí: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin? Manejará omitir la solicitud de consentimiento y el inicio de sesión único (es decir, si el usuario está conectado a Live y luego se dirige a la página de autenticación, auth se lleva a cabo automáticamente sin que el usuario realice ninguna acción adicional).

Cuestiones relacionadas