如何将.NET WebSocket客户端与NTLM代理一起使用?

Ric*_*iwi 10 .net ntlm http-proxy websocket c#-4.0

我的目标是使用WebSocket .Net客户端实现(即不是浏览器)通过需要NTLM身份验证的公司代理连接到WebSocket.到目前为止,所有的解决方案(例如websocket-sharp-with-proxy,websocket4net)都很简短.

我试过这些:

如何使用WebSocket4Net库代理

/sf/answers/181113131/

据我所知,作者尚未更新有关添加NTLM代理支持的讨论.http://websocket4net.codeplex.com/discussions/448172

这个问题试图问为什么客户端实现不支持代理,但它没有得到回答,并没有说明为什么没有人想要解决这个问题.

回到我的问题,如何在NTLM代理后面的客户端应用程序中使用WebSocket技术?

Bra*_*fin 3

ClientWebSocket中找到的对象包含System.Net.WebSockets一个Options允许您配置代理设置的属性。

var ws = new System.Net.WebSockets.ClientWebSocket();
await ws.ConnectAsync(new Uri("destination.com"), CancellationToken.None);
ws.Options.Proxy = new WebProxy("example.com")
{
    Credentials = new NetworkCredential("userName", "password")
};
Run Code Online (Sandbox Code Playgroud)

NetworkCredential对象用于基于密码的身份验证,并且可以提供您需要的内容。如果上述方法不起作用,您还可以尝试像这样设置对象的属性CredentialsOptionsWebSocket

ws.Options.Credentials = new NetworkCredential("userName", "password");
Run Code Online (Sandbox Code Playgroud)

我无法访问这种类型的环境,所以我实际上没有尝试过您想要做的事情,并且不确定这是否有帮助。但是,这看起来对我有用。