Написание собственного запроса / ответа NTLM в ASP.Net - PullRequest
4 голосов
/ 18 января 2011

Я знаю, что вы можете включить проверку подлинности 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?

1 Ответ

1 голос
/ 30 марта 2011

Cassini поддерживает аутентификацию NTLM, поэтому вы можете использовать источник для более простого создания класса, который анализирует сообщения авторизации NTLM.

http://cassinidev.codeplex.com/

...