2016-01-20 39 views
-2

摘要如何通過Web服務器從另一個客戶端控制Windows客戶端?

我想在.NET中創建C#一個系統,是一個IT工具來控制了輸入這些產品在世界上的Windows客戶端。代理需要通過https工作,並通過代理Web服務器將其他控制權交給管理控制檯。我需要的控制類型的一個例子是命令行,註冊表,文件瀏覽器和VNC。

當被管理控制檯請求時,客戶端需要馬上回應(如果它在線)。我知道這需要某種持久連接到Web服務器。

我目前使用WCF運行Web服務器

細節。運行在客戶端上的代理運行良好,客戶端可以通過計時器告訴Web服務器其狀態,但我很努力地知道管理控制檯如何通過WCF連接請求代理控制註冊表等。這是否需要使用其他技術打開新連接?

我發現,有技術,如SignalR看起來很有意思,可以幫助,但它被設計爲發送信息/郵件是< 32KB這顯然不會與遠程工具,如註冊表等

工作

這是非常令人沮喪的,因爲我已經看到其他人使用這種遠程控制技術,如Kaseya和Naverisk。他們使用什麼樣的方法?

要求

代理是不允許的,所以任何端口,它必須向Web服務器通過HTTPS準備採取從管理控制檯請求的連接。

問題

可有人請點我有什麼技術可以通過Web服務器做這種類型的通信的方向是正確的?

我只知道.net,但是如果需要的話,我會準備研究其他技術。

回答

0

您可以使用websockets,一旦建立連接,代理的出站連接就會升級爲雙向連接。管理控制檯然後可以通過套接字發送消息。有許多用於.NET的websocket庫可以幫助您,並且可以使用WCF NetHTTPSBinding。

或者,在Azure中提供的帶有WCF綁定的Azure服務總線中繼可以執行此操作 - 雙方都建立一個出站連接,然後互相發送和接收消息。當Azure的一端處於Azure狀態時,這種方式更可靠,但在Azure外部使用兩端的中繼方式也可以正常工作。

將有可能通過在正確的安全上下文(ACL)下運行的Windows應用程序(例如Windows服務)訪問Windows註冊表。