2009-06-22 8 views
6

Gibt es eine Möglichkeit, wenn ein Browser ohne mit NTLM NTLM zu bestimmen, unterstützt für die jeweilige Website oder das Verzeichnis in IIS aktiviert und ohne ein Login-Dialog/pop-up zeigt? Bestimmen Sie dies vorzugsweise mit ColdFusion oder einer Kombination aus JS und CF. Ich würde es vorziehen, dies nicht auf IE zu beschränken, da andere Browser (z. B. FF) die NTLM-Authentifizierung unterstützen.fest, ob Browser integrierten Windows-Authentifizierung unterstützt

Antwort

5

Wenn Sie eine Seite anfordern und die Seite 401 zurückgibt und sagt, dass sie nur NTLM akzeptiert und der Browser ein weiteres HTTP-Paket sendet, das darauf antwortet, unterstützt sie NTLM. Sie müssen IIS das nicht tun lassen - Sie könnten jede Seite haben, auf der Sie die Antwortcodes und Header NTLM anfordern können. Wenn Sie keine weitere Anfrage erhalten, bedeutet dies, dass sich der Client auf diese Weise nicht authentifizieren konnte.

Sie könnten dies auf dem Client erkennen, indem Sie diese Anfrage in ein IFrame schreiben und dann auf der äußeren Seite prüfen, was im iframe passiert ist.

+0

Ich habe versucht, dies zu tun, aber leider fragt der Browser immer noch nach Anmeldeinformationen. Welche Art von Ruinen die Transparenz der ganzen Sache. Grundsätzlich möchte ich keine andere Anmeldung als die transparente NTLM-Authentifizierung. Gibt es überhaupt eine Möglichkeit, dieses Standardverhalten zu unterdrücken? Ich versuchte auch Steves Vorschlag, aber es scheint, dass bei dieser Technik der CF-Server die Daten sendet und die Daten vom Client nicht mehr weitergibt. Dies führt zu einer konstanten 401-Antwort. – illvm

+0

Haben Sie gesehen, was passiert, wenn Sie versuchen, einen XMLHTTPRequest zu machen? –

+0

Ich würde auch versuchen zu sehen, was mit anderen Möglichkeiten der Erzwingung einer HTTP-Anfrage (img, Skript, Link, usw. Tags) passiert. Vielleicht gibt es einen, bei dem der Browser automatisch stürzt (und nicht auftaucht). –

2

Aufbauend auf Lous Antwort können Sie eine cfhttp-Anfrage in einem try/catch-Block machen. Sie überprüfen dann die Antwortheader, um Ihre nächsten Schritte zu bestimmen.

0

Leider sind Sie möglicherweise gezwungen, Browser-Sniffing und eine Whitelist zu verwenden.

+0

Dies funktioniert leider nicht, da nicht angegeben werden kann, ob der Browser für die Verwendung der bestimmten Seite als vertrauenswürdige Quelle für die NTLM-Authentifizierung konfiguriert ist. – illvm

Verwandte Themen