6 Stimmen

Abfrage der Rollen eines Benutzers in AD, wenn der Anrufer nicht in der Domäne ist

Ich möchte die Gruppenmitgliedschaften eines Benutzers in einem ActiveDirectory abrufen, ohne in der Domäne zu sein. Wenn ich dies innerhalb der Domäne ausführe, ist alles in Ordnung.

var context = new PrincipalContext(ContextType.Domain);
var principal = UserPrincipal.FindByIdentity(context, IdentityType.Name, "administrator");

foreach (var authorizationGroup in principal.GetAuthorizationGroups())
{
    Console.WriteLine(authorizationGroup.Name);
}

Wenn ich jedoch außerhalb der Domäne ausgeführt wird, muss ich den PrincipalContext folgendermaßen angeben:

var context = new PrincipalContext(ContextType.Domain, "10.0.1.255", "DC=test,DC=ad,DC=be", "administrator", "password");

Wenn ich diesen Code ausführe, erhalte ich eine Ausnahme, wenn ich principal.GetAuthorizationGroups() . Die Ausnahme, die ich bekomme, ist:

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()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X