Je souhaite obtenir les appartenances à un groupe d'utilisateurs dans un annuaire ActiveDirectory, sans appartenir au domaine. Quand je cours cela dans le domaine, tout va bien.Demander les rôles d'un utilisateur dans AD lorsque l'appelant n'est pas dans le domaine
var context = new PrincipalContext(ContextType.Domain);
var principal = UserPrincipal.FindByIdentity(context, IdentityType.Name, "administrator");
foreach (var authorizationGroup in principal.GetAuthorizationGroups())
{
Console.WriteLine(authorizationGroup.Name);
}
Cependant, quand je cours en dehors du domaine, je dois préciser le PrincipalContext se trouvent ceci:
var context = new PrincipalContext(ContextType.Domain, "10.0.1.255", "DC=test,DC=ad,DC=be", "administrator", "password");
Quand je lance ce code, je reçois une exception quand j'exécute principal.GetAuthorizationGroups()
. L'exception que je reçois est:
System.DirectoryServices.AccountManagement.PrincipalOperationException: Information about the domain could not be retrieved (1355).
at System.DirectoryServices.AccountManagement.Utils.GetDcName(String computerName, String domainName, String siteName, Int32 flags)
at System.DirectoryServices.AccountManagement.ADStoreCtx.LoadDomainInfo()
at System.DirectoryServices.AccountManagement.ADStoreCtx.get_DnsDomainName()
at System.DirectoryServices.AccountManagement.ADStoreCtx.GetGroupsMemberOfAZ(Principal p)
at System.DirectoryServices.AccountManagement.UserPrincipal.GetAuthorizationGroupsHelper()
at System.DirectoryServices.AccountManagement.UserPrincipal.GetAuthorizationGroups()
J'ai eu ce problème. En cours d'exécution "nslookup yourdomain" devrait résoudre à votre DC. – T3hc13h