我的目标是使用WebSocket .Net客户端实现(即不是浏览器)通过需要NTLM身份验证的公司代理连接到WebSocket。到目前为止,所有的解决方案(例如websocket-sharp,websocket4net)都很短。
我试过这样的方法:
How to use proxies with the WebSocket4Net library
https://stackoverflow.com/a/2587330/573261
据我所知,作者还没有更新关于添加NTLM代理支持的讨论。http://websocket4net.codeplex.com/discussions/448172
这个问题试图问为什么客户端实现不支持代理,但它没有得到回答,也没有给出任何新的解释为什么没有人想解决这个问题。
因此,回到我的问题,如何在NTLM代理背后的客户端应用程序中使用WebSocket技术?
发布于 2016-09-07 22:27:08
在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")
};NetworkCredential对象用于基于密码的身份验证,并可能提供所需的内容。您还可以尝试在Credentials对象的Options属性上设置这样的设置,如果上面的操作不起作用的话。
ws.Options.Credentials = new NetworkCredential("userName", "password");我无法访问这种类型的环境,所以我没有真正尝试过您试图做的事情,也不确定这是否会有所帮助。但是,这在我看来是可行的。
https://stackoverflow.com/questions/39091816
复制相似问题