2011-03-14 29 views
8

我需要爲NTLM握手創建類型1消息和類型3消息。有沒有.Net API這個?如何在.Net中創建Ntlm類型1和類型3消息

本質上,該應用程序是基於WPF的,但使用Socket來傳輸服務器中的數據。使用套接字是技術要求,但問題在於用戶需要使用代理服務器連接到服務器。此外,如果代理授權基於Ntlm,則客戶端應用程序需要創建類型1和類型3消息以與代理服務器握手。

我的問題是:在.NET庫中是否有可用的API來創建這些不同類型的NTLM消息?任何幫助或替代品將不勝感激。提前致謝。

回答

2

如果您僅限於套接字,則必須手動實施整個NTLM身份驗證協議。微軟在secur32.dll中有一個Security Support Provider Interface (SSPI)來實現各種安全協議,你可以通過PInvoke(也可以使用某種.net包裝,可以從here)重新使用一些API函數。

以下是NTLM auth protocol的說明,其中API示例爲NTLMSSP和SSPI部分。基本上,整個身份驗證方案正在圍繞使用不同參數調用AcquireCredentialsHandle/InitializeSecurityContext而演變。這將爲您提供原始字節格式的type1/type3 ntlm消息,您必須通過套接字發送/接收。