如何在.Net中创建Ntlm Type 1和Type 3消息

时间:2011-03-14 00:04:40

标签: c# network-programming

我需要为NTLM握手创建Type 1消息和Type 3消息。这有什么.Net API吗?

本质上,应用程序是基于WPF的,但是使用Socket来从服务器传输数据。使用套接字是技术要求,但问题是当用户需要使用代理服务器连接到服务器时。此外,如果代理授权基于Ntlm,则客户端应用程序需要创建Type 1和Type 3消息,以便与代理服务器握手。

我的问题是:.NET库中是否有可用于创建这些不同类型的NTLM消息的API?任何帮助或替代方案将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果您被限制为套接字,则必须手动实现整个NTLM身份验证协议。微软在secur32.dll中有一个Security Support Provider Interface (SSPI)来实现各种安全协议,你可以通过PInvoke从那里重用一些API函数(也有某种.net包装器可用here)。

以下是NTLM auth protocol的说明,其中包含 NTLMSSP和SSPI 部分中的API示例。基本上,整个身份验证方案围绕使用不同参数调用AcquireCredentialsHandle / InitializeSecurityContext而发展。这将为您提供原始字节格式的type1 / type3 ntlm消息,您必须通过套接字发送/接收这些消息。

相关问题