【问题标题】:C# IPC Between BHO and ServiceBHO 和服务之间的 C# IPC
【发布时间】:2010-09-04 19:37:19
【问题描述】:

我似乎无法在我的 IE C# BHO 和以 SYSTEM 运行的 C# 控制台应用程序之间进行通信。

到目前为止,我已经尝试过使用 Remoting 和 EventWaitHandle,但是当我在 Win 7 中打开 UAC 的默认设置时,两者都会给我“拒绝访问”错误。

我已经能够拥有一个控制台应用程序,它使用 Remoting 和 EventWaitHandle 与服务进行通信。

我需要一种在启用 UAC 的情况下在两个进程之间共享数据的方法,我有哪些选择?

【问题讨论】:

  • 它是特权提升的后门。 UAC 旨在关闭的门。
  • 我认为 UAC 不会阻止您让 C# 控制台应用程序侦听端口(仅接受本地连接)并让 BHO 通过 TCP/UDP 连接到它
  • 我对托管 BHO 几乎一无所知,但是,您可以使用 netNamedPipesBinding 在控制台应用程序中托管 WCF 服务。这是一个非常安全的绑定,并且只能在同一台计算机中使用。也许您可以将服务引用添加到您的 BHO 项目,指向控制台服务?

标签: c# ipc uac bho


【解决方案1】:

首先查看Understanding and Working in Protected Mode Internet Explorer。有一段大约在中途,其中指出:

注意如果您使用保护模式进行通信,最佳做法是以低完整性运行您的应用程序。否则,仅使用安全形式的进程间通信 (IPC),例如远程过程调用 (RPC),在保护模式和更高完整性进程之间进行通信。

基本上,在 IE“保护模式”进程中运行的任何东西都是非常受限的“沙盒”。虽然 this codeproject article 以 C++/COM 为目标,但您应该能够将它解释的原则应用到在托管代码中编写某些内容,尽管您可能必须 P/Invoke 才能实现这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多