Проверьте, вошел ли пользователь в систему или нет после запуска OnlineIdConnectedStateChange
Я работаю над приложением Windows 8.1 Metro. Приложение дает персонализированный опыт пользователю, который вошел в Windows с его учетной записью Live.
Как предусмотрено в Windows, любой пользователь может подключить / отключить свою учетную запись live к ПК через настройки ПК - > учетная запись. Мое требование-получать уведомления об этом событии, т. е. всякий раз, когда пользователь подключает/отключает свой реальный аккаунт к ПК. Теперь, согласно странице MSDN (http://msdn.microsoft.com/en-us/library/windows/apps/hh977056.aspx ) это событие вызовет OnlineIdConnectedStateChange. Мне удалось реализовать фоновую задачу в приложении, которое слушает триггер, и оно работает отлично. Каждый раз, когда происходит изменение в подключенном реальном счете, прослушиватель событий запускается. Но я не могу определить, вошел ли пользователь в систему с какой-то реальной учетной записью или вышел из уже подключенной учетной записи.
Я попробовал использовать Windows.Security.Authentication.OnlineId.OnlineIdAuthenticator , Как упоминалось в (Metro App-Как определить, вошел ли он с Live ID или локальным Учетная запись ), но это запускает поток аутентификации, если ни один пользователь не вошел в систему. Это не то, чего я хочу. Я просто хочу знать, вошел ли кто-то в систему или нет. Я не хочу запускать поток Auth.
Есть ли способ определить состояние входа / выхода пользователя, когда событие OnlineIdConnectedStateChange запускается в фоновой задаче?
Спасибо за любую помощь.
1 ответ:
Вы всегда можете сохранить последний идентификатор пользователя, который успешно вошел в систему. Затем сравните этот идентификатор с текущим идентификатором пользователя, если он равен нулю, то пользователь вышел из системы, если нет, то это новый пользователь.
Правка:
Пользователь открывает приложение 1.ответ: пользователь => магазин какой-нибудь флаг или userId (некоторая информация в основном) 1.b: пользователь не входит в систему = > хранить некоторый нулевой флаг или нулевой идентификатор пользователя
Пользователь закрывает приложение
Backgroundworker подхватывает событие, на основе флага или информации вы можете определить, вошел ли пользователь в систему или вышел из нее.
В зависимости от того, что вы храните, вы можете использовать AppSettings или IsolatedStorage среди других опций для хранения флага.
Comments