Как получить доступ к настройкам приложения UWP, установленным MDM?

Я использую EnterpriseModernAppManagement CSP для установки и настройки некоторых приложений UWP, как указано здесь:

https://msdn.microsoft.com/en-us/library/windows/hardware/dn904956(v=vs.85).aspx

.../PackageFamilyName/AppSettingPolicy/SettingValue (только для ./User/Vendor/MSFT) Добавлено в Windows 10 версии 1511. Параметр SettingValue и данные представляют собой пару ключ-значение, которую необходимо настроить для приложения.

Приложение UWP устанавливается правильно, и настройка параметров (через AppSettingPolicy) выполняется успешно.

Но как мне теперь получить доступ к этим пользовательским настройкам внутри самого приложения с помощью С#?

Обе пары ключ/значение Windows.Storage.ApplicationData.Current.LocalSetting.Values и Windows.Storage.ApplicationData.Current.RoamingSettings.Values кажутся пустыми и не затрагиваются изменениями MDM.

Есть ли способ отправить произвольные настройки/конфигурацию в пользовательское приложение UWP через MDM?


person Looka    schedule 31.10.2016    source источник
comment
Как вам удалось установить приложение из MDM? Я создал пример приложения из Visual Studio, подписал его и разместил на локальном https-сервере. Пытался установить appxbundle. Я получаю успех для установки, но, тем не менее, статус показывает установку. Он совсем не меняется. Я включил боковую загрузку, а также добавил MIME-тип application-octetstream для appxbundle.   -  person Aster Veigas    schedule 08.12.2016
comment
Хм, а загрузка того же работает нормально? Была эта проблема с IIS, поэтому мне пришлось использовать nginx, прежде чем исправлять IIS. Вам нужно убедиться, что HTTP-запрос HEAD, сделанный сервером WP, возвращает правильный заголовок Content-Length, а не ноль. Кроме того, убедитесь, что серверы правильно подчиняются заголовку запроса Range, WP сначала запросит только первый байт (0-0). Кроме того, я думаю, что Cache-Control не должно быть. В любом случае попробуйте использовать другой http-сервер и используйте Fiddler, чтобы убедиться, что все запросы выполнены. Поскольку запросы разбиты на части, для одного приложения должно быть видно 5–10 запросов.   -  person Looka    schedule 11.12.2016
comment
Неопубликованная загрузка appxbundle работает при ручной установке на устройство.   -  person Aster Veigas    schedule 12.12.2016
comment
Тогда это, безусловно, просто проблемы с возможностями http-сервера / заголовками, о которых я упоминал.   -  person Looka    schedule 12.12.2016
comment
Когда Managed.App.Settings изменяется, возникает ли какое-либо событие? Можем ли мы настроить приложения, которые не установлены с помощью MDM? Я лично считаю, что это невозможно. Вы случайно не пробовали это?   -  person Aster Veigas    schedule 12.12.2016
comment
ApplicationData.DataChanged следует запустить. Любое приложение можно настроить, если оно действительно читает и понимает настройки (и его подпись является доверенной). Я думаю. :)   -  person Looka    schedule 12.12.2016
comment
Я пробовал событие ApplicationData.DataChanged и не работал. Однако данные были отправлены в приложение, но мое приложение не получило уведомления. Может быть, мне нужно раскрутить поток, чтобы прочитать из контейнера. Какие-нибудь мысли?   -  person Aster Veigas    schedule 28.12.2016


Ответы (1)


Судя по всему, новый контейнер создается в локальных настройках приложения после того, как пары ключ-значение AppSettingPolicy проталкиваются через EnterpriseModernAppManagement CSP.

Доступ к значениям можно получить через:

ApplicationData.Current.LocalSettings.Containers["Managed.App.Settings"].Values

Было бы хорошо, если бы это было где-то задокументировано! :)

person Looka    schedule 01.11.2016