我正在为 Windows 8 应用商店应用程序 (XAML/C#) 使用 v5.3 Live SDK,我有一个问题。
- 在我的应用程序中,如果用户使用 Microsoft 帐户登录 Windows,那么我想获取名字/姓氏/Microsoft ID。
- 如果他们使用本地帐户登录到 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 中显示一个登录按钮。
有人对如何区分上述两个标准有任何想法吗?
谢谢你的期待,理查德。