2010-09-04 72 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才能實現此目的。