Se qualcuno ha una storia simile, si prega di inviare i dettagli di seguito!Perché l'autenticazione con LDAP con DirectoryEntry genera in modo intermittente COMException (0x8007203A): "Il server non è operativo"?
Sto costruendo un sito Web ASP.NET che deve supportare l'autenticazione contro LDAP.
Su Windows, l'autenticazione LDAP può essere eseguita tramite Active Directory (non sono esperto, ma AD sembra essere semplicemente un particolare tipo di LDAP). Non controllo i server AD e/o LDAP.
ho provato vari metodi di autenticazione, ma ho scelto di utilizzare un unico DirectoryEntry
per tentativo di autenticazione:
using (DirectoryEntry de = new DirectoryEntry(ldapPath, ldapUsername, password, AuthenticationTypes.ServerBind)) {
try {
// Bind to the native AdsObject to force authentication.
object obj = de.NativeObject;//not IDisposable
} catch(...
Recupero del NativeObject provoca un COMException
se qualcosa va storto di sorta, ad esempio se la autenticazione fallita, l'eccezione è qualcosa come "Logon failure: sconosciuto nome utente o password errata", e se il server ldap è irraggiungibile o scade, qualcosa del tipo "Il server non è operativo."
Questo funziona, fondamentalmente, ma dopo un numero variabile di giorni, sempre iniziando la prima cosa al mattino, otteniamo "Il server non è operativo". fino al riavvio di IIS. Ovviamente non si tratta di una soluzione a lungo termine, ma per quanto posso dire che l'errore è relativo all'oggetto Com sottostante DirectoryEntry, non è una soluzione facile da risolvere.
Thisproblemisn'tneworunknown. Alcune persone hanno superato il supporto di Microsoft con risultati misti; fondamentalmente le risposte sembrano venire a "prendere il tuo percorso ldap e creare alcune alternative equivalenti e forse una di queste funzionerà". Ogni volta che provi, o certo, non saprai per qualche giorno se ha effettivamente funzionato, e finché non verrà trovata una soluzione reale, torneremo a "riavviare i server Windows ogni notte".
Per cominciare, ho provato i percorsi LDAP nel formato
* "LDAP://server.uri:636"
* "LDAP://insecure.server.uri:389"
* "LDAP://server.uri:636/cn=username,ou=staff,o=myOrganisation,c=org"
sempre con un nome utente con il seguente schema:
* "cn=username,ou=staff,o=myOrganisation,c=org"
Tutti questi metodi di lavoro inizialmente, ma non riescono dopo un numero variabile di giorni (e iniziare a lavorare dopo un reset di IIS). Il server esegue IIS6 su win 2k3.
Se qualcun altro ha questi problemi, si prega di postare qui sotto, e forse alla fine troveremo un modello con cui lavorare o avere un numero sufficiente di esempi per convincere Microsoft a risolvere questo problema.
E 'possibile questo errore è di vincere le opzioni di clustering di 2k3 - abbiamo migrato a un sistema a server singolo non cluster e gli ultimi giorni sono stati senza problemi. –
Cosa era raggruppato? Il server che esegue la tua app o il server che esegue AD? –
Il server che esegue l'app. Il server LDAP era in realtà una macchina non Windows in esecuzione da qualche parte all'esterno: non sono sicuro della sua configurazione. Inoltre, sembra che i problemi si verifichino anche per le "connessioni" UDP costruite manualmente, suggerendo che si tratta di una cosa di basso livello. –