7

我正在开发一个 Windows 8.1 Metro 应用程序。该应用程序为使用 Live 帐户登录 Windows 的用户提供个性化体验。

正如 Windows 中所提供的,任何用户都可以通过 PC 设置 -> 帐户将他的实时帐户连接/断开连接到 PC。我的要求是在此事件中收到通知,即,每当用户将其真实帐户连接/断开连接到 PC 时。现在,根据 MSDN 页面(http://msdn.microsoft.com/en-us/library/windows/apps/hh977056.aspx ),此事件将触发 OnlineIdConnectedStateChange。我能够在应用程序中实现一个后台任务来监听触发器,它工作得很好。每次连接的真实账户发生变化时,都会触发事件监听器。但我无法确定用户是使用某个 Live 帐户登录还是从已连接的帐户注销。

我尝试使用Windows.Security.Authentication.OnlineId.OnlineIdAuthenticatorMetro App - 如何检测是否使用 Live ID 或本地帐户登录)中所述)中所述使用,但是如果没有用户登录,这会触发身份验证流程。这不是我想要的。我只想知道是否有人登录。我不想触发身份验证流程。

在后台任务中触发 OnlineIdConnectedStateChange 事件时,有什么方法可以确定用户的登录/注销状态?

谢谢你的帮助。

4

1 回答 1

3

您始终可以存储成功登录的用户的最后一个用户 ID。然后将该 ID 与当前用户 ID 进行比较,如果为空则用户已注销,如果不相同则为新用户。

编辑:

  1. 用户打开应用程序 1.a:用户登录 => 存储一些标志或用户 ID(基本上是一些信息) 1.b:用户未登录 => 存储一些空标志或空用户 ID

  2. 用户关闭应用

  3. Backgroundworker 根据标志或信息获取事件,您可以确定用户是登录还是注销。

根据您存储的内容,您可以使用 AppSettings 或 IsolatedStorage 以及其他选项来存储标志。

于 2014-02-16T16:21:47.660 回答