J'essaye de me lier à un serveur Active Directory en C# mais sur le site je semble avoir des problèmes non reproductibles dans l'environnement de test.ne peut pas se connecter à AD sans se connecter spécifiquement à un DC
Je reçois une exception
System.Runtime.InteropServices.COMException (0x8007203A): The server is not operational.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.RefreshCache()
at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
at System.DirectoryServices.DirectoryEntry.get_NativeGuid()
le code ressemble à ceci
// domainStr = "LDAP://domainname/rootDSE
using (var de = new DirectoryEntry(domainStr, Username, Password))
{
var guid = de.NativeGuid;
}
si je tente de connecter le contrôleur de domaine à la place (ou domainStr = "LDAP://domainController/rootDSE"
qualifié domainStr = "LDAP://domainController.DomainName"
) il fonctionne bien.
J'ai essayé
var d = Domain.GetDomain(new DirectoryContext(
DirectoryContextType.Domain,
domainStr,
Username,
Password));
mais je reçois la même exception exacte lorsque vous faites cela. Je me demande si je fais quelque chose de mal, peut-être qu'une URL LDAP différente fonctionnerait mieux ou si c'est un problème commun que j'ai (bien que les recherches de google soulèvent ce problème je n'ai pas trouvé une solution cela fonctionne pour moi)
De même, il peut être utile de souligner que le serveur sur lequel le logiciel s'exécute n'est pas dans Active Directory et j'ai une liste des AD auxquels je me connecte (d'où le nom d'utilisateur et le mot de passe connect)
Cette machine utilise-t-elle un membre "sur site" de ce domaine? Si ce n'est pas le cas, vous devrez spécifier un utilisateur de domaine spécifique + pwd pour pouvoir faire quoi que ce soit. Aussi, je crois que le bon chemin LDAP serait juste 'LDAP: // RootDSE' - est-ce que ça marche pour vous ?? –
Je ne suis pas sûr de ce que vous voulez dire! mais sûr avec C#, vous pouvez vous connecter à AD en spécifiant DCs IP/Nom/Adresse même si votre machine n'est pas un membre du domaine. –
La machine n'est pas membre du domaine (donc je ne peux pas simplement me connecter avec 'LDAP: // RootDSE'). Cependant, j'ai utilisé un nom d'utilisateur et un mot de passe lorsque j'essayais de me connecter, mais je reçois toujours l'exception ci-dessus à moins que je ne spécifie explicitement un contrôleur de domaine. – clows