Live Connect Rest API:登录用户?

问题描述 投票:0回答:2

我正在使用 Live Connect Rest API 开发 poc。

(此处的文档:http://msdn.microsoft.com/en-us/windowslive/default

使用下面链接中的示例,我可以登录用户并请求同意某些操作。

但是,我有几个与此相关的问题:

  • 当用户之前已经授予同意时,如何跳过请求同意?
  • 在应用程序运行之间存储“access_token”的保存方式是什么?
  • 如何使用 Rest API 进行单点登录?

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

谢谢!

c# rest microsoft-live-connect
2个回答
1
投票
  • 如果用户之前授予了您所需的同意,Live 将不会提示用户再次授予同意。您无需手动跳过。
  • 我不知道您的平台是什么,但您可能会找到某种方法来隔离或加密应用程序的存储。重要的是令牌有一个过期时间。您还可以考虑使用微软提供的控制器,它可以处理与实时登录相关的所有事情。这是我的 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

它将在用户登录或注销时自动更新。

在 C# 代码中,添加 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);
                       }
        }
    }

0
投票

您看过这里吗:http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin?它将处理跳过同意请求和单点登录(即,如果用户登录 Live,然后被定向到身份验证页面,身份验证将自动进行,无需用户采取任何其他操作)。

© www.soinside.com 2019 - 2024. All rights reserved.