2012-08-09 19 views
5

Possiedo un'applicazione Intranet ASP.NET configurata per l'esecuzione in modalità di autenticazione integrata di Windows. Ha funzionato bene fino a quando non è emersa una necessità di recente.Autenticazione di bypass di Windows

Che la necessità è che la rete Intranet deve essere verificata per la disponibilità da un verificatore di disponibilità che è un servizio di Windows. Ciò che fa il correttore è colpire una pagina ASP.NET ed esaminare l'oggetto risposta. Dal momento che il servizio di Windows non è in esecuzione con un account utente di dominio, si arriva

The remote server returned an error: (401) Unauthorized.

Sto pensando di aggiungere una nuova pagina asp.net per il controllo da utilizzare e voglio dire al sistema di non autenticare. Ma credo che l'autenticazione avvenga prima che l'applicazione abbia anche la possibilità di rivedere la pagina, che l'errore 401 venga restituito prima che il codice dell'applicazione "veda" la pagina.

Quali sono le mie opzioni per ottenere da questo?

Grazie!

John

+0

ha funzionato nulla con voi? Ho esattamente lo stesso problema. – Costa

risposta

1

Prova questo:

aggiungere una nuova cartella al tuo sito web (ad esempio:/Check)

in/Check, creare nuovi web.config contenente:

<configuration> 
    <system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
     <allow users="?"/> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</configuration> 

Quindi tutto ciò che si accede a/Check non deve essere autenticato.

+0

Grazie per le risposte veloci. Ho provato – John

+0

Siamo spiacenti, non sapevo che avevo solo 5 minuti per modificare i miei commenti. Ho provato l'approccio alla cartella "Check" ma ho ricevuto questo errore: è un errore utilizzare una sezione registrata come allowDefinition = 'MachineToApplication' oltre il livello dell'applicazione. Questo errore può essere causato da una directory virtuale non configurata come un'applicazione in IIS. (E: \ Root \ Intranet \ check \ web.config riga 3). Inoltre vorrei aggiungere che questa applicazione è in esecuzione in modalità classica di IIS 7. – John

3

Oltre all'aggiunta di una nuova cartella, come commentato da @GordonBell, è possibile utilizzare l'elemento location nel file root web.config.

Esempio:

<location path="YourFile.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
+0

Sì, buon punto. Anche se dovrebbe essere consentito agli utenti = "?" per anonimo. –

+0

@GordonBell Il tuo commento non è accurato. '*' significa _tutti gli utenti_. '?' significa utenti anonimi. Pertanto ' Jupaol