1

我正在为 Windows 8 应用商店应用程序 (XAML/C#) 使用 v5.3 Live SDK,我有一个问题。

  1. 在我的应用程序中,如果用户使用 Microsoft 帐户登录 Windows,那么我想获取名字/姓氏/Microsoft ID。
  2. 如果他们使用本地帐户登录到 Windows 并且没有登录到我的应用程序,那么我想显示一个“登录”按钮,以便他们可以输入他们的 Microsoft 帐户电子邮件/密码。

我知道如何使用 Live SDK 完成所有这些操作,但我的问题是 - 如何判断用户是使用 Microsoft 帐户登录 Windows 还是使用未登录 MS 帐户的本地帐户?

我可以使用以下内容:

var idAuth = new OnlineIdAuthenticator();
return idAuth.CanSignOut;

但如果上述两个条件为真,这将返回假(如果用户使用本地帐户,但已使用 Microsoft 帐户详细信息登录到我的应用程序,则返回真)。

理论上,如果上面返回 false,我可以执行以下操作:

LiveAuthClient authClient = new LiveAuthClient();
LiveLoginResult authResult = await authClient.LoginAsync(new List<string>() { "wl.signin" });
if (authResult.Status == LiveConnectSessionStatus.Connected)
  { //Get user info here }

问题是这对于使用 Microsoft 帐户登录到 Windows 的用户来说很好 - 他们的信息被很好地拾取,但如果它是使用本地帐户登录到 Windows 的用户,那么它将显示实时登录屏幕我的应用程序 - 那时我不想这样做,而只是在我的 UI 中显示一个登录按钮。

有人对如何区分上述两个标准有任何想法吗?

谢谢你的期待,理查德。

4

1 回答 1

0

我最终在 MSDN 论坛上问了同样的问题并在那里得到了答案,所以我把它贴在这里以防万一它对其他人有帮助。

http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/thread/f6946851-‌​b495-45f6-95a4-eb3c2a004c0e

于 2013-08-06T19:04:27.323 回答