2016-01-20 42 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注册表。