6

ho implementato un'autenticazione basata modulo che utilizza AD in un 3 applicazione ASP MVC seguendo le indicazioni che ho trovato qui ASP.NET MVC - Authenticate users against Active Directory, but require username and password to be inputtedASP.NET MVC Form Auth basato utilizza AD funziona in locale ma fallisce sul server (IIS7)

mi funziona bene quando ho eseguito utilizzando il server di sviluppo ASP.NET, ma non riesce ad andare oltre la pagina di login dopo inserisco le mie credenziali e dà il seguente errore:

errore di configurazione

Descrizione: un errore di occu rred durante l'elaborazione di un file di configurazione necessario per soddisfare questa richiesta. Si prega di rivedere i dettagli specifici degli errori di seguito e modificare il file di configurazione in modo appropriato.

parser messaggio di errore: Un errore operazioni si è verificato.

errore Origine:

Line 37:  <membership defaultProvider="MY_ADMembershipProvider"> 
Line 38:  <providers> 
Line 39:   <add name="MY_ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" /> 
Line 40:  </providers> 
Line 41:  </membership> 

Qualsiasi aiuto sarebbe molto apprezzato, grazie in anticipo.

UPDATE: Finora, dopo un paio di esegue il debug Penso errore potrebbe essere provenienti da System.Web.Security.ActiveDirectoryMembershipProvider nella configurazione Web.xml, ho aggiunto System.Web (in cui si trova quella classe) come riferimento e anche di fare un copia locale ma ancora, zip ... :(

risposta

6

assicurarsi di aver superato un nome utente valido e la password di un account che dispone di privilegi sufficienti per interrogare il tuo annuncio:

<add 
    name="MY_ADMembershipProvider" 
    type="System.Web.Security.ActiveDirectoryMembershipProvider" 
    connectionStringName="ADConnectionString" 
    attributeMapUsername="sAMAccountName" 
    connectionUsername="YOURDOMAIN\SomeAccount" 
    connectionPassword="secret" 
/> 

Se non si desidera per farlo dovrai configurare la cacca dell'applicazione l nel tuo IIS per essere eseguito con un account che dispone di privilegi sufficienti per interrogare la tua Active Directory. Per impostazione predefinita, l'applicazione viene eseguita con un account NetworkService locale che non ha accesso all'AD.

+0

Questo potrebbe non essere il caso in cui l'applicazione funziona perfettamente quando passo da Form a Windows come metodo di autenticazione. – dotKwame

+0

Questo è perfettamente normale. Quando si utilizza l'autenticazione di Windows si stanno utilizzando le credenziali del client per richiedere l'annuncio. Quando si utilizza l'autenticazione anonima, non ci sono permessi. –

+0

Quindi, appena testato con un provider di appartenenza AD personalizzato che "manualmente" autenticato tramite l'annuncio nel codice 'DirectoryEntry dsEntry = new DirectoryEntry (ldapSvrAddr, model.Username, model.Password); object nativeobj = dsEntry.NativeObject; ', quindi ha cambiato il tipo in web.config da' System.Web.Security.ActiveDirectoryMembershipProvider' a 'MyNamespace.MyCustomADClass' e ha funzionato correttamente (nessuna connessioneUn utente o password richiesti), ma desidero usa il provider di appartenenza AD standard nel framework .net e non finisci per implementare tutto – dotKwame

6

Ho cambiato l'identità del pool di applicazioni da "ApplicationPoolIdentity" a "NetworkService" e ora tutto funziona alla grande.

+0

Questo ha funzionato anche per me! – chridam

+0

Come cambiarlo? – Shrivallabh