2009-06-22 11 views
6

integrati Esiste un modo per determinare se un browser supporta NTLM senza dover NTLM abilitato per il particolare sito o directory in IIS e senza che mostra una finestra di login/pop-up? Preferibilmente, determinare questo utilizzando ColdFusion o forse una combinazione di JS e CF. Preferirei non limitare questo solo a IE come altri browser (come FF) supportano l'autenticazione NTLM.Determinare se il browser supporta l'autenticazione di Windows

risposta

5

Se si richiede una pagina e la pagina restituisce 401 e dice che accetta solo NTLM, quindi il browser invia un altro pacchetto HTTP cercando di rispondere ad esso, quindi supporta NTLM. Non devi fare in modo che IIS faccia ciò: potresti avere qualsiasi pagina in cui puoi impostare i codici di risposta e le intestazioni richiedono NTLM. Se non ricevi un'altra richiesta, significa che il client non può autenticarsi in questo modo.

È possibile rilevare questo sul client inserendo questa richiesta in un IFrame, quindi nella pagina esterna controllando per vedere cosa è successo nell'iframe.

+0

Ho provato a farlo, ma sfortunatamente il browser chiede ancora le credenziali. Che tipo di rovina la trasparenza dell'intera cosa. Fondamentalmente, non voglio nessun login diverso dall'autenticazione NTLM trasparente. Esiste comunque la possibilità di sopprimere questo comportamento predefinito? Ho provato anche il suggerimento di Steve, ma sembra che usare questa tecnica abbia il server CF che invia i dati e che non stia più passando i dati dal client. Ciò si traduce in una risposta costante 401. – illvm

+0

Hai visto cosa succede se provi a creare un XMLHTTPRequest? –

+0

Vorrei anche provare a vedere cosa succede con altri modi di forzare una richiesta HTTP (tag img, script, link, etc). Forse ce n'è uno che il browser fallirà silenziosamente (e non pop-up). –

2

Sulla base della risposta di Lou, è possibile effettuare una richiesta cfhttp all'interno di un blocco try/catch. Quindi controlla le intestazioni di risposta per determinare i tuoi prossimi passi.

0

Sfortunatamente, potresti essere obbligato a utilizzare lo sniffing del browser e una white-list.

+0

Questo non funziona purtroppo perché non c'è modo di dire se il browser è configurato per utilizzare la pagina specifica come fonte attendibile per l'autenticazione NTLM. – illvm

Problemi correlati