2010-09-04 97 views
2

我似乎无法找到一种方式来在我的IE C#BHO和以SYSTEM身份运行的C#控制台应用程序之间进行通信。BHO和服务之间的C#IPC

到目前为止,我已经使用远程处理和的EventWaitHandle试过,但两者给我“拒绝访问”错误,当我已经UAC在Win 7

打开的默认设置,我已经能够有一个控制台应用程序,使用Remoting和EventWaitHandle与服务进行通信。

我需要一种方法来与UAC之间的两个进程之间共享数据,我的选择是什么?

+1

这是一个特权提升的后门。 UAC设计的门关闭。 – 2010-09-04 19:45:15

+0

我不认为UAC可能会阻止你让C#控制台应用程序在端口上侦听(只接受本地连接),并让BHO通过TCP/UDP连接到它 – 2010-09-04 20:04:16

+0

然而,我对管理的BHO几乎一无所知,在控制台应用程序中的一个WCF服务,使用'netNamedPipesBinding'。这是一个非常安全的绑定,只能在同一台计算机上运行。也许你可以添加一个服务引用到你的BHO项目,指向控制台服务? – 2010-09-04 22:05:29

回答

1

从阅读Understanding and Working in Protected Mode Internet Explorer开始。有一个关于中途下来其中规定部分:

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

本质上,在IE“保护模式”进程中运行的任何东西都是非常受限制的“沙箱”。虽然this codeproject article的目标是C++/COM,但您应该能够将其解释的原则应用于托管代码中,尽管您可能必须通过P/Invoke才能实现此目的。