Ich habe 2-Domänen, A und B. Die Domäne A die Gruppe GroupA welche Benutzer von Domäne B enthält
My Code:GroupPrincipal.GetMembers und domänenübergreifende Mitglieder Fehler
using (var context = new PrincipalContext(ContextType.Domain, DomainName, User, Password))
{
using (var groupPrincipal = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName,
groupName))
{
if (groupPrincipal == null) return null;
using (var principalSearchResult = groupPrincipal.GetMembers(true))
{
var changedUsersFromGroup =
principalSearchResult
.Where(member => member is UserPrincipal)
.Where(member => IsModifiedUser(member, usnChanged))
.Cast<UserPrincipal>()
.Select(adsUser => new AdsUser(adsUser)).Cast<IAdsUser>()
.ToArray();
return changedUsersFromGroup;
}
}
}
-System .DirectoryServices.AccountManagement.PrincipalOperationException: Beim Versuch, eine Cross-Store-Referenz aufzulösen, konnte das Zielprinzipal nicht in der Domäne gefunden werden, die von der SID des Prinzipals angegeben wird.
Aber wenn ich Benutzer hinzufügen von hier
new PrincipalContext(ContextType.Domain, DomainName, User, Password)
zu Domäne B, funktioniert es richtig.
Wie kann ich es beheben?
Wenn Sie Zeit haben, die verwandten Assemblys in GAC zu dekompilieren, können Sie sehen, was die Bedingungen für diese Ausnahme mit dieser Fehlermeldung sind.Meine persönliche Vermutung ist, dass es a Verbindungsproblem zu DC zu dieser Zeit, so dass die Nachricht irreführend war.Es wäre ziemlich schwierig zu lösen, außer das zweite Mal zu versuchen. –