2016-02-18 3 views
0

У меня есть приложение Windows 8.1, которое используется как приложение LOB.Получение информации о пользователе в приложении Windows 8.1, запущенном в Windows 10

Приложение получить пользователь домена на следующую строку кода:

string user = await Windows.System.UserProfile.UserInformation.GetDomainNameAsync(); 

Это все работает отлично и приложение развертывается на многочисленных 8,1 таблетки.

Однако, я только что обновил свой компьютер до окон 10, и эта строка кода теперь возвращает пустую строку.

У меня был Google и нашел эту статью: https://msdn.microsoft.com/library/windows/apps/windows.system.userprofile.userinformation.aspx

Но это совет просто обновить приложение до окна 10 универсальное приложение или откат к окнам 8.1. Это не очень хороший вариант, так как у меня есть планшеты, в которых работает 8.1.

Так кто-нибудь знает, как обойти эту проблему? Это в основном означает, что я не могу разработать приложение Windows 8 на своем ПК с Windows 10.

ответ

0

Класс UserInformation больше не существует в ОС Windows 10.

Смотрите эту ссылку: https://msdn.microsoft.com/library/windows/apps/windows.system.userprofile.userinformation.aspx

Если вы прокрутите вниз, чтобы заметить, вы обнаружите, что класс UserInformation заменяется User класса:

для Windows 10:

приложения, скомпилированные для Windows 8, которые используют UserInformation кл ass no более длинная информация о пользователе при работе в Windows 10. Это , потому что в Windows 10 приложения не имеют доступа к информации о пользователе без явного согласия пользователя, в отличие от Windows 8, где это разрешение предоставляется по умолчанию.

Если у вас есть приложение для Windows 8, в котором используется класс UserInformation, вы должны выполнить миграцию приложения на универсальную платформу Windows (UWP) и вместо этого. Теперь ожидается, что приложения Windows Platform (UWP) объявят новую функцию , uap: userAccountInformation и вызовет новые API, Windows.System.User.FindAllAsync и User.GetPropertiesAsync, чтобы получить данные .

Пользователям, устанавливающим приложение, предлагается предоставить доступ к их пользователю . Если пользователь разрешает приложению получать доступ к информации, то приложение отображается на странице «Конфиденциальность» в разделе «Настройки конфиденциальности Windows» 1 (Настройки> Конфиденциальность> Информация об учетной записи). Это позволяет пользователям Windows 10 разрешать доступ к информации о пользователях для каждого приложения.

так что короткий ответ НЕТ, это невозможно без изменения кода.

Что вы можете сделать, это проверить работоспособность ОС и реализовать два способа получения информации о пользователе.1 для Windows 8 и 1 для окон 1 (делая это, вы также включить приложение, чтобы использовать на Windows 10 устройств)

How can I detect if my app is running on Windows 10

If app is running Windows 10: use User class 
Else: use UserInformation class. 

Чтобы проверить, как он работает на Windows 8 на вашем Windows 10 устройства, вы можете добавить виртуальную машину Windows 8 и протестировать приложение там. (не идеально, но, по крайней мере, это что-то)

+0

Ссылка была в моем вопросе – Sun

+0

, но ссылка дает вам ответ. код все равно будет компилироваться, но просто не работать в Windows 10 и не будет возвращать ничего, кроме информации пользователя. в Windows 8.1 код все равно вернет правильную информацию пользователя. нет другого пути. – GeertvdC

+0

, так что если у вас есть вопрос, есть ли другой способ обхода решения: no – GeertvdC

Смежные вопросы