Я знаю, что вы можете включить проверку подлинности NTLM в приложении ASP.Net, используя:
<authentication mode="Windows" />
Однако - мне нужно обрабатывать формы, HTTP и другие пользовательские проверки подлинности в той жеприложение, поэтому ограниченная встроенная поддержка ASP.Net бесполезна.
Рукопожатие NTLM должно быть довольно простым:
Request - [unauthenticated - no user info passed]
Response - 401 Unauthorized
WWW-Authenticate: NTLM
Request - Authorization: NTLM <base64-encoded type-1-message>
Response - 401 Unauthorized
WWW-Authenticate: NTLM <base64-encoded type-2-message>
Request - Authorization: NTLM <base64-encoded type-3-message>
Server can now check username/password against LDAP from type-3 message
Response - 200 Ok [now authenticated & authorised]
Так что, чтобы свернуть меня, мне нужно проанализировать type-1 и type-3 и генерирует сообщение type-2 .
Структура для этих сообщений хорошо документирована, но довольносложный - кажется очень грязным писать собственные генераторы сообщений и парсеры.Я думаю, что методы для чтения и записи этих сообщений уже должны быть в .Net, но я не смог их найти.
Как я могу создавать и анализировать эти сообщения NTLM, используя .Net?