Windows Live SDK没有LogOut()

Microsoft Live ID现在称为Microsoft帐户。 话虽如此,假设我以sam@email.com登录Windows 8并运行应用程序。

该应用程序使用Live SDK访问我的Microsoft帐户配置文件。 但是,在它可以这样做之前,我必须明确许可并登录。到目前为止,完美。

虽然我将应用程序权限授予sam@email.com我想将其更改为janet@email.com因此我单击应用程序的Logout按钮,从SDK查询LiveAuthClient.CanLogout() 。 令人困惑的是,SDK返回false(我无法注销)。

为什么不? 一旦当前Windows 8用户使用Windows Live SDK登录到Windows 8应用程序,他们如何注销(当CanLogOut()始终返回false时)? 是否有设置或允许这样的东西?

事实certificate,这个问题的答案(http://stackoverflow.com/questions/13294496/can-the-windows-8-live-sdk-use-another-microsoft-account-other-than-the-current)是不准确的。

检查你的范围。 如果您使用wl.signin ,则无法再通过代码注销,因为它是单点登录。请尝试使用wl.basic 。 更多关于范围的信息 。 当您意外使用wl.signin您必须登录仪表板,手动删除应用程序连接。

这是预期的行为。 请查看以下链接 。

如果用户使用Microsoft帐户或连接到Microsoft帐户的本地或域帐户登录Windows 8,则提供自定义注销按钮无效。 因此,让用户连接到具有不同Microsoft帐户的应用程序的唯一方法是,用户尚未将其Microsoft帐户与Windows 8关联。

希望这可以帮助…

确保您的示波器中不使用“wl.signin”。 如果您使用此function测试了自己的应用,请转到您的真实帐户的帐户首选项,然后从应用访问权限中删除此选项。 现在,这将允许多个用户登录。

  private LiveAuthClient authClient; private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e) { this.authClient = new LiveAuthClient("yourclientidhere"); } then you can call this.authClient.Logout(); when you want to change users.