2012-09-20 17 views
5

Ho cercato di risolvere questa domanda per un paio di settimane ora tramite Google e leggere SO, e non ho avuto molta fortuna, quindi ho pensato di provare finalmente a chiedermi .Autenticazione Windows ASP.NET non funzionante/Non accettare credenziali

Sto configurando un sito molto semplice ASP.NET sulla nostra intranet per generare alcune informazioni per gli utenti interni. Sto usando l'autenticazione di Windows, piuttosto che l'accesso anonimo, perché sulla base di ciò che l'utente colpisce il sito genererò informazioni diverse.

Per farla breve, questo funziona perfettamente nei test sulla mia macchina locale Windows 7 in cui ho sviluppato l'applicazione. Tuttavia, dal Windows 2008 R2 server dove voglio risiedere, quando raggiungo il sito ottengo un pop-up che richiede le mie credenziali e, anche se li inserisco, me lo chiede ripetutamente. Ciò accade indipendentemente dal fatto che io stia colpendo il sito da remoto o localmente. Se provo a utilizzare l'accesso anonimo, posso raggiungere il sito in entrambi i modi ma, poiché non riesco a identificare l'utente, non posso generare le informazioni che vorrei fornire.

Note:

  1. In IIS, ho autenticazione di Windows e ASP.NET rappresentazione abilitati per il sito. Tutto il resto è disabilitato.

  2. Al fine di capirlo, al momento ho il set web.config per consentire a tutti gli utenti e non sto negando nessuno.

  3. L'host/URL sto usando perché è toolName.organization.local
  4. ero preoccupato che era un problema dell'utente 2008 R2 di amministrazione che risiede in un dominio diverso, allora il mio utente remoto che ho stava testando con ma ancora non funziona localmente neanche.
  5. Nel file AppHost, attualmente WindowsAuthentication è abilitato.

      <windowsAuthentication enabled="true"> 
          <providers> 
           <add value="Negotiate" /> 
           <add value="NTLM" /> 
          </providers> 
          </windowsAuthentication> 
    

Certo, io di solito uso l'autenticazione di form su questo server per tutti i nostri altri siti interni, quindi sono un po 'nuova per l'autenticazione di Windows e questo problema. A questo punto non sono sicuro di cosa provare o controllare, quindi qualsiasi consiglio sarebbe utile. Grazie.

+1

Si prova questo strumento di diagnostica: http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx? Ignora la data del post, c'è una versione v7.0/7.5 – MatthewMartin

risposta

2

In primo luogo, è necessario rendersi conto che l'autenticazione passthrough di Windows funziona solo con Internet Explorer e solo se il sito si trova nei siti attendibili o nel gruppo di sicurezza dei siti intranet. Firefox, Chrome, ecc. Richiederanno sempre le credenziali.

Detto questo, hai un paio di problemi.

si dovrebbe avere un elemento <authentication mode="Windows" /> nel web.config

Si dovrebbe decidere se si desidera l'applicazione per l'esecuzione nel contesto dell'utente, nel qual caso si avrebbe bisogno anche di un tag <identity impersonat="true"/>. In caso contrario, dovrebbe essere falso (sebbene questo sia l'impostazione predefinita).

Non è necessario disporre di regole di autorizzazione nel proprio web.config se il sito stesso è completamente protetto dall'autenticazione di Windows.

+0

Grazie per il feedback. Ho una modalità di autenticazione impostata come suggerito e cerco solo di accedere al sito tramite IE. Ho commentato la sezione di autorizzazione per motivi di test. Vorrei che l'app fosse eseguita nel contesto dell'utente, ma non sono abbastanza sicuro di cosa intenda con "un tag". Finora sto ancora ricevendo lo stesso, ripetendo prompt di credenziali. Uno di questi è interessante, lo strumento DelegConfig consigliato da un utente precedente funziona localmente con l'autenticazione di Windows. Quindi ho intenzione di confrontare il mio web.config con quello dello strumento e vedere se c'è qualcosa di ovvio. – user1032943

+0

Questa risposta ha risolto il mio problema: stavo tentando di utilizzare l'autenticazione di Windows con Firefox (39.0.3) e di ottenere la finestra di dialogo "Autenticazione richiesta" indipendentemente da ciò che ho fatto. Ho eseguito il mio progetto con MSIE e l'autenticazione ha funzionato correttamente. –

8

So che questo è un argomento un po 'vecchio, ma ho avuto lo stesso identico problema.Risulta che ho avuto l'AppPool utilizzando Identity: ApplicationPoolIdentity anziché NetworkService. Una volta che ho cambiato (in Impostazioni avanzate in IIS7.5) non ho più richiesto al server ulteriori credenziali e il pass-through ha funzionato perfettamente.

Spero che questo aiuti!

0

Nel caso in cui sia utile, il problema per me era che avevo lasciato il mio pool di applicazioni in modalità Classica, al fine di provare a utilizzare le autorizzazioni NTFS. Non ho mai funzionato, ma una volta riattivato la modalità integrata, potrei usare i tag <allow> e <deny> per configurare l'accesso di determinati utenti.

Problemi correlati