Компонент с посредническим компонентом UWP - привилегия администратора

Mustafa Gündoğar спросил: 28 апреля 2018 в 09:49 в: c#

Я пытаюсь использовать сторонний API для печати html-файла. Когда я использую SDK поставщика в приложении WinForm, он терпит неудачу во время операций InternetExplorer. (ошибка ниже) Итак, я узнал, что процесс должен выполняться только по привилегии "Администратор". И тогда приложения и операции печати работают хорошо.

Вызываемый объект отключился от своих клиентов. (Исключение fromHRESULT: 0x80010108 (RPC_E_DISCONNECTED)): Трассировка стека: atSystem.Runtime.InteropServices.ComTypes.IConnectionPoint.Unadvise (Int32dwCookie) atSHDocVw.DWebBrowserEvents2_EventProvider.remove_TitleChange (DWebBrowserEvents2_TitleChangeEventHandler) atSHDocVw.InternetExplorerClass.remove_TitleChange (DWebBrowserEvents2_TitleChangeEventHandler)

После этого возникает вопрос. Я должен использовать тот же API для печати в брокерском приложении UWP. Скажем, это приложение с назначенным доступом / киоском. Я знаю, что UWP не может работать с повышением пользователя, но я предполагаю, что брокерское приложение должно иметь некоторые параметры для запуска, в основном "dllhost.exe" в качестве администратора. Из-за того, что приложение должно работать в режиме назначенного доступа, я не могу назначить назначенного пользователя доступа в качестве администратора. (Я сомневаюсь, что он будет работать, даже если я его установлю)

Есть ли возможность запускать dllhost.exe в качестве администратора? Или любое другое предложение по проблеме?


1 ответ

Yury Schkatula ответил: 28 апреля 2018 в 10:18

По сравнению с картой WinForms, UWP имеет значительно другую модель безопасности. Такая же проблема для списка доступных API, а также для схемы жизненного цикла приложения. Таким образом, я подозреваю, что вам нужно связаться с вашим поставщиком для UWP-совместимого SDK.

Mustafa Gündoğar ответил: 28 апреля 2018 в 12:43
Я считаю, что даже UWP-совместимый SDK не решит мою проблему. Потому что я вызываю операции в среде с песочницей .NET с использованием бокового кодирования. Смысл, мой код работает на .NET, но процесс начинается с UWP. Итак, я предположил, что среда с песочницей должна обладать некоторой привилегией, назначающей или управляемой как инфраструктура.
Yury Schkatula ответил: 28 апреля 2018 в 01:17
UWP с самого начала предлагает песочный бокс (поэтому он имеет значительно меньше API-интерфейсов). Так, например, вы не можете получить доступ к "диску C:" в UWP, ни один из них не вызывает "CreateFileEx", поскольку они запрещены, независимо от боковой загрузки или MS Store, которые используются для развертывания приложения.