2013-03-12 17 views
5

Possiedo un server Web con due siti Web: a & b.
a è produzione.IIS Windows Authentication weirdness

b sta testando/staging.

chi ha scritto queste applicazioni prima di me si basa su

Request.ServerVariables("LOGON_USER") 

che viene assegnato quando l'utente si autentica con il server tramite autenticazione di Windows. Su a, questo funziona alla grande, in b c'è qualche stranezza:

Ricevo il mio prompt di login, ma non posso usare [domain] \ myusername per accedere, posso farlo con \\ nomeutente però, stesse password (Basato su AD). Le configurazioni IIS sono identiche per quanto posso dire, l'unica incongruenza è un DNS CNAME che punta da a.dominio.com a b.dominio.com. Cambiare quel record DNS per puntare sull'IP ha risolto il problema, ma sto cercando di capire cosa stava succedendo.

precedente record DNS: b.domain.com > a.domain.com

lavoro record DNS: b.domain.com > 10.0.x.131

Dovrebbe già stati b> a> l'autenticazione di Windows regolare, ma per qualche ragione mi sono trovato con \\, è vero virare su il nome del dominio due volte o qualcosa del genere? E che cosa è esattamente \\ riguardo all'autenticazione?

Ha senso?

risposta

0

Alcuni pensieri.

  • Quale versione specifica del sistema operativo è in esecuzione sul server in uso? Microsoft in particolare tende ad avere comportamenti un po 'diversi tra le diverse versioni e la documentazione è specifica della versione

  • È difficile rispondere alle domande "cosa sta succedendo" perché non c'è modo di essere sicuri di cosa sia corretto. Posso scartare ipotesi (e volontà), e se potessi esprimere la domanda come "come aggiustare questo" piuttosto che "cosa sta succedendo" potresti controllare se ho ragione e rispondere, probabilmente dopo aver acquisito un po ' più pertinenti dati lungo la strada.

  • Sembra che si tratti più di una profonda comprensione dell'amministrazione del sistema piuttosto che della comprensione della programmazione: se non si ottiene ciò di cui si ha bisogno in questo caso, è meglio chiedere una risposta su serverfault.

Detto questo, in assenza di altre informazioni, il "\" probabilmente deriva da una delle due cose.

È possibile che si dispongano di due parti diverse del codice ciascuna delle quali aggiunge "\". I nomi di dominio sono in molti casi validi sia con che senza il trailing '\'. Pertanto, è abbastanza probabile che l'autenticazione di Windows aggiunga uno immediatamente dopo i nomi di dominio e prima degli ID di accesso per garantire la separazione tra i due. Se la ricerca DNS CNAME ne aggiunge automaticamente uno alla fine del nome di dominio per ragioni simili, i due potrebbero sovrapporsi.

È possibile che da qualche parte nel processo DNS il dominio sia passato attraverso un convertitore per modificare i caratteri di controllo in caratteri di escape (come un modo per evitare determinati exploit di sicurezza). '\' è usato come base per questi caratteri di escape, e quindi richiede un proprio carattere di escape ('\').

+0

In realtà è il prompt di autenticazione di Windows predefinito in cui è stato avviato \\. Sto pensando che la voce DNS stia minacciando l'intestazione dell'host che confonde IIS, mi stavo chiedendo perché avrebbe confuso tutto ciò, non credo che il DNS dovrebbe avere alcun effetto. Pubblicando questo, speravo più che qualcuno l'abbia incontrato prima di quella \\ parte. \\ è in genere una fuga, ma \ non ha funzionato neanche. – RandomUs1r

+0

Se è possibile rispondere alla domanda su quale sistema operativo si sta utilizzando, potrei essere in grado di dare una mano in più. –

+0

Questo è un server Windows Server 2003 che esegue IIS 6 con tre siti Web: predefinito, applicazioni web e webstage. – RandomUs1r