Какой PrincipalContext использует UserPrincipal.GetGroups(), если не указан?

В случае, когда я получаю группы для идентификатора UserPrincipal (в поставщике ролей Active Directory), и я использую функцию UserPrincipal.GetGroups(), которая не требует PrincipalContext в качестве параметра, то, что по умолчанию используется для PrincipalContext? Я спрашиваю, как при устранении неполадок, я вижу, как он подключается к другому серверу AD, который не является подключенным сервером для моего PrincipalContext. Некоторый код в качестве примера:

using ( PrincipalContext context = new PrincipalContext( ContextType.Domain, "domain", null, ContextOptions.Negotiate ) )
{
    UserPrincipal identity = UserPrincipal.FindByIdentity( context, IdentityType.SamAccountName, username );

    if (identity != null)
    {
        var groupList = identity.GetGroups();
    } 
}

Если я выведу context.ConnectedServer Я получаю действующий активный сервер. Тем не мение, identity.GetGroups() подключается к другому серверу (в моем случае System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException потому что он подключается к старому серверу). Если я вместо этого использую identity.GetGroups(context), группы возвращаются правильно. Почему вызов GetGroups без PrincipalContext приводит к тому, что по умолчанию он подключается к другому серверу?

0 ответов

Другие вопросы по тегам