【问题标题】:Brokered UWP Component - Administrator privilege代理的 UWP 组件 - 管理员权限
【发布时间】:2018-05-22 11:29:43
【问题描述】:

我正在尝试使用第 3 方 API 来打印 html 文件。当我在 WinForm 应用程序中使用供应商的 SDK 时,它在 InternetExplorer 操作期间失败。 (错误如下)所以我发现该进程应该只在“管理员”权限下运行。然后,应用程序和打印操作运行良好。

调用的对象已与其客户端断开连接。 (例外来自 HRESULT:0x80010108(RPC_E_DISCONNECTED)):堆栈跟踪:在 System.Runtime.InteropServices.ComTypes.IConnectionPoint.Unadvise(Int32 dwCookie) 在 SHDocVw.DWebBrowserEvents2_EventProvider.remove_TitleChange(DWebBrowserEvents2_TitleChangeEventHandler ) 在 SHDocVw.InternetExplorerClass.remove_TitleChange(DWebBrowserEvents2_TitleChangeEventHandler )

我的问题在那之后开始。我必须使用相同的 API 在代理的 UWP 应用程序中打印。假设它是一个分配访问/信息亭应用程序。我知道 UWP 无法在用户提升的情况下运行,但我认为代理应用程序应该有一些设置可以运行,基本上是以管理员身份运行“dllhost.exe”。由于应用程序应该在分配的访问模式下运行,我无法将分配的访问用户设置为管理员。 (我怀疑即使我设置它也会起作用)

是否有可能以管理员身份运行 dllhost.exe?或任何其他问题建议?

【问题讨论】:

  • 由于您已经拥有代理组件的安装程序,您是否尝试在设置为自动提升的代理组件旁边安装 EXE?然后我相信你应该能够从你的代理组件调用 CreateProcess(或 Process.Start)来启动提升的进程来执行任何需要提升的操作。
  • @StefanWickMSFT 是的,我想过,它似乎工作。但我的首要任务是将其作为与 API 正确通信的进程内操作。我目前正计划与 MSMQ 进行通信。我可以选择与 EXE 通信吗?
  • 我认为这里可以使用任何标准的 Win32 进程间通信机制(套接字、RPC 等)。正确的选择取决于您的要求,例如复杂性、频率、通信量。

标签: c# uwp elevated-privileges


【解决方案1】:

如果与 WinForms 框架相比,UWP 具有明显不同的安全模型。可用 API 列表和应用程序级生命周期架构的问题相同。因此,我怀疑您必须联系您的供应商以获取与 UWP 兼容的 SDK。

【讨论】:

  • 我相信即使是兼容 UWP 的 SDK 也无法解决我的问题。因为我在使用侧装的沙盒 .NET 环境中调用操作。意思是,我的代码在 .NET 上运行,但进程由 UWP 启动。所以,我假设沙盒环境应该有一些权限分配或运行基础设施。
  • UWP 从一开始就打算使用沙盒(这就是它可用的 API 显着减少的原因)。因此,例如,您不能在 UWP 中访问“驱动器 C:”,也不能调用“CreateFileEx”,因为它们是被禁止的,无论侧载或 MS Store 用于应用程序部署。
猜你喜欢
  • 2014-04-18
  • 2014-12-13
  • 2021-12-09
  • 2021-02-28
  • 2020-09-04
  • 2011-01-06
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多