Свойство StoreContext User всегда является нулевым в однопользовательском приложении UWP

Я занимаюсь разработкой приложения для UWP (универсальная платформа Windows), которое будет доступно на устройствах Windows 10 и Xbox One. Приложение представляет собой однопользовательское приложение. Я пытаюсь определить во время выполнения уникальный идентификатор для активного вошедшего в систему пользователя - просто идентификатор без какой-либо личной информации. Документация для класса StoreContext предполагает, что я должен быть в состоянии определить это, изучив User свойство по умолчанию StoreContext объект; в частности, NonRoamableId собственность кажется подходящей. Однако в каждом контексте, в котором я запускал приложение (отладка, развертывание, Windows, Xbox), StoreContext User собственность всегда была null, Это ожидается? Я не могу найти другой способ определить эту информацию.

Примечательно: мне известен класс UserWatcher и его методы для запросов пользователей в системе. Тем не менее, я хотел бы избежать использования этого по следующим причинам:

  1. Свойства, предоставляемые приложению с помощью этих методов запроса, недостаточны для определения того, какие User тот, связанный с текущим StoreContextЭто означает, что такое решение будет подвержено ошибкам.
  2. При таком запросе информации о пользователях появляется всплывающее окно с разрешениями, что имеет смысл, если приложению необходимо прочитать информацию, идентифицирующую личность, но, поскольку я просто ищу программный уникальный идентификатор, это не кажется необходимым,

Я работаю против SDK обновления для создателей Windows 10 (10.0.15063).

Редактировать 16.11.2017

Похоже, что это, возможно, была ошибка UWP, которая теперь исправлена. Без изменений кода, теперь я вижу ненулевой User объект прикреплен к LaunchActivatedEventArgs при запуске приложения. Принял ответ соответственно.

3 ответа

Решение

Смежный вопрос здесь.

Активный пользователь, вошедший в учетную запись MS, может быть получен из аргументов события OnLaunched/Activated.

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
   Windows.System.User active_user = e.User;
}

Это требует добавления возможности информации об учетной записи пользователя в манифест пакета.

Я знаю, что опоздал на ответ здесь, но другие могут найти этот вопрос тоже. Свойство User в StoreContext не предназначено для способа получения пользователя. На самом деле, у UWP не должно быть возможности получить подробную информацию о пользователе, который в данный момент вошел в магазин.

Свойство User позволяет разработчикам многопользовательских приложений, использующих API-интерфейс StoreContext.GetForUser (...) для создания StoreContext. При использовании этого метода свойство User будет предоставлено пользователем при его создании.,

StoreContext.GetDefault() ВСЕГДА будет иметь нулевое свойство User.

Многопользовательская модель предназначена для Xbox One, в которой одновременно может быть зарегистрировано несколько пользователей.

Документация для класса StoreContext предполагает, что я должен быть в состоянии определить это, изучив свойство User в объекте StoreContext по умолчанию; в частности, свойство NonRoamableId кажется подходящим.

Рекомендуется использовать Windows.Services.Store пространство имен для получения идентификатора пользователя в Windows 10 Creators' Update. Однако это пространство имен не предоставляет класс, который можно использовать для моделирования во время тестирования.

Таким образом, вы должны опубликовать свое приложение для хранения и загрузки приложения на устройство разработки для тестирования, чтобы вы могли получить действительный StoreContext,

Для однопользовательского приложения:

В однопользовательском приложении (то есть приложении, которое запускается только в контексте пользователя, запустившего приложение), используйте статический метод GetDefault, чтобы получить объект StoreContext, который можно использовать для доступа к данным, связанным с Магазином Windows, для пользователь.

Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
Другие вопросы по тегам