Wie unterstützt man NTLM-Authentifizierung mit Fallback in ASP.NET MVC?

Wie kann ich das umsetzen in folgenden ASP.NET MVC-Anwendung:

  1. Benutzer öffnet intranet-website
  2. Benutzer automatisch authentifiziert, wenn möglich
  3. wenn die NTLM-Authentifizierung nicht geklappt hat, zeige login-Formular für Benutzer
  4. Benutzer angeben, login-Passwort ein und wählen Sie die Domäne aus der Liste der vordefinierten Domänen
  5. Benutzer authentifiziert ist im code mithilfe von AD

Ich weiß, wie das umzusetzen, 4 und 5, aber nicht finden können, Informationen, wie zu kombinieren, NTLM und Formen.
So dass die NTLM-native-login - /Kennwort-Dialogfeld wird nie angezeigt - transparente Authentifizierung oder gut aussehende login-Seite.

Wie sollte das funktionieren?
Sollte der Benutzer gebeten werden, login und Passwort?
Können Ihre aktuellen Anmeldeinformationen (Domäne, Benutzername) verwendet werden, ohne zu Fragen, geben Sie login und Passwort?

UPDATE für diese Untersuchung gleiche problem:

Wenn ich gefragt wurde war ich nicht ganz verstehen, wie die NTLM-Authentifizierung intern arbeitet.
Wichtig hier zu verstehen ist, dass, wenn der browser des Nutzers nicht unterstützt NTLM-richtig oder wenn die NTLM-Unterstützung ist durch den Benutzer deaktiviert - server bekommst nie eine chance, dies zu umgehen.

Wie die Windows-Authentifizierung arbeiten:

  1. - Client-senden Sie eine normale HTTP-Anfrage an den server
  2. Server antwortet mit HTTP-status 401 und der Hinweis darauf, dass die NTLM-Authentifizierung verwendet werden muss, um den Zugriff auf Ressourcen
  3. Client NTLM senden Type1 Nachricht
  4. Server antwortet mit NTLM-2-Nachricht mit der Herausforderung
  5. Client senden Type3-Nachricht mit der Antwort auf die Herausforderung
  6. - Server antwortet mit dem tatsächlichen Inhalt angefordert

Wie Sie sehen, der browser unterstützt keine NTLM wird nicht gehen Sie zu Schritt (3), anstatt die user angezeigt werden IIS generierten Error-401 Seite.

Wenn Benutzer keine Anmeldeinformationen haben, nach dem Abbruch der NTLM-Authentifizierung popup-dialog-Fenster-browser nicht weiter zu (3).

So haben wir keine chance, automatisch umleiten Benutzer auf benutzerdefinierte login-Seite.

Die einzige Möglichkeit, hier eine "gateway" - Seite, wo wir entscheiden, ob Benutzer sollte die Unterstützung der NTLM-und wenn ja, leiten Sie zur NTLM-geschützte Homepage.

Ist und wenn nicht, zeige login-Formular und ermöglichen die Authentisierung durch manuelle Eingabe von login und Passwort.

Entscheidung ist in der Regel basierend auf Nutzer-IP-Adresse und/oder host-Namen entweder durch passende IP-Bereiche oder durch überprüfen der Tabelle der vordefinierten IPs.

InformationsquelleAutor der Frage Igor Romanov | 2010-10-26

Schreibe einen Kommentar