Если вы используете WindowsIdentity
или LogonUserIdentity
, он получит информацию о группе из данных авторизации, хранящихся в билете выдачи билетов Kerberos (TGT).
Это мощный и полезный инструмент, поскольку после проверки подлинности и получения Kerberos TGT вам не нужно снова запрашивать Active Directory, чтобы получить всю информацию о группе. На самом деле, групповое перечисление довольно дорого и сложно. Таким образом, подход к билетам Kerberos является предпочтительным, и этот подход используется при доступе к любым ресурсам Windows.
Однако это также означает, что после добавления учетной записи пользователя в группу, подход WindowsIdentity
или LogonUserIdentity
не будет знать вновь добавленные группы. Вы должны очистить свой билет Kerberos и получить его снова. Вы можете выйти из системы, а затем войти в систему или заблокировать экран и ввести пароль, чтобы разблокировать экран.
Если по каким-то причинам вы все еще хотите выполнить перечисление групп самостоятельно, я рекомендую вам использовать UserPrincipal.GetAuthorizationGroups в .NET 3.5. Возвращает все группы безопасности, к которым принадлежит пользователь.