Вызов IPrincipal.IsInRole в Windows 7

Мы используем аутентификацию NTLM в нашем приложении, чтобы определить, может ли пользователь выполнять определенные операции. Мы используемIPrincipal их текущего входа в Windows (в приложениях WinForms), вызываяIsInRole проверить наличие определенных групповых членств.

Чтобы проверить, что пользователь является локальным администратором на машине, мы используем:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
...
bool allowed = Thread.CurrentPrincipal.IsInRole(@"Builtin\Administrators")

Это работает, если текущий пользователь являетсяAdministrator пользователь, или другой пользователь, который является членомBuiltin\Administrators группа.

В нашем тестировании на Windows 7 мы обнаружили, что это больше не работает, как ожидалось.Administrator пользователь по-прежнему работает нормально, но любой другой пользователь, который является членомBuiltin\Administrators группа возвращает ложь дляIsInRole вызов.

Что может быть причиной этой разницы? У меня есть ощущение, что настройки по умолчанию где-то изменились (возможно, в gpedit), но я не могу найти ничего похожего на виновника.