Ich weiß, dass Sie NTLM aktivieren können Authentifizierung in einer ASP.Net-Anwendung mit:
<authentication mode="Windows" />
Ich muss jedoch Forms, HTTP und andere benutzerdefinierte Authentifizierungen in derselben Anwendung handhaben, sodass die begrenzte integrierte Unterstützung von ASP.Net nicht ausreicht.
Der NTLM-Handshake sollte recht einfach sein:
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]
Um meine eigene Version zu erstellen, muss ich also Folgendes analysieren Typ-1 y Typ-3 Nachrichten und erzeugen eine Typ-2 Nachricht.
Die Struktur für diese Nachrichten ist gut dokumentiert, aber ziemlich komplex - Es erscheint mir sehr umständlich, meine eigenen Nachrichtengeneratoren und Parser zu schreiben. Ich denke, die Methoden zum Lesen und Schreiben dieser Nachrichten sollten bereits in .Net vorhanden sein, aber ich habe sie nicht finden können.
Wie kann ich diese NTLM-Nachrichten mit .Net erstellen und analysieren?