.net - 如何将 .NET WebSocket 客户端与 NTLM 代理结合使用?

标签 .net c#-4.0 websocket ntlm http-proxy

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

我已经尝试过这些:

How to use proxies with the WebSocket4Net library

https://stackoverflow.com/a/2587330/573261

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

这个问题试图询问为什么客户端实现不支持代理,但没有得到回答,也没有阐明为什么没有人愿意解决这个问题。

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

最佳答案

System.Net.WebSockets 中找到的 ClientWebSocket 对象包含一个 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 对象用于基于密码的身份验证,并且可以提供您需要的内容。如果上述方法不起作用,您还可以尝试在 WebSocket 对象的 Options 属性上设置 Credentials,如下所示。

ws.Options.Credentials = new NetworkCredential("userName", "password");

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

关于.net - 如何将 .NET WebSocket 客户端与 NTLM 代理结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39091816/

相关文章:

c# - 制作基于 LINQ 的解决方案,以确定一组谓词是否满足受一组不变量约束的一对集合

c# - Asp.Net MVC 的生日提醒代码

c#-4.0 - 同一服务器上的多个数据库(数据上下文),无需 MS DTC

node.js - WebSocket 握手响应 400,但仍然有效

c# - 在 .NET 2.0 中实现 BDD/TDD 的最佳方式是什么?

c# - 最好的 c# 异常处理开源工具

c# - 如何压缩 ASP.NET 中的特定页面

c# - 用于查询事件网络和关联连接的 WMI

javascript - 客户端重新加载页面时如何修复服务器故障?

javascript - 当源是 base64 websocket 数据时,图像 onload 不会触发 javascript