Chamando IPrincipal.IsInRole no Windows 7

Usamos autenticação NTLM em nosso aplicativo para determinar se um usuário pode executar determinadas operações. Nós usamos oIPrincipal do logon atual do Windows (nos aplicativos WinForms), chamandoIsInRole para verificar associações específicas ao grupo.

Para verificar se um usuário é um administrador local na máquina, usamos:

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

Isso funciona se o usuário atual for oAdministrator usuário ou outro usuário que seja membro doBuiltin\Administrators grupo.

Em nossos testes no Windows 7, descobrimos que isso não funciona mais conforme o esperado. oAdministrator O usuário ainda funciona bem, mas qualquer outro usuário que seja membro doBuiltin\Administrators O grupo retorna falso para oIsInRole ligar.

O que poderia estar causando essa diferença? Tenho a sensação de que uma configuração padrão mudou em algum lugar (possível no gpedit), mas não consigo encontrar nada parecido com o culpado.

questionAnswers(5)

yourAnswerToTheQuestion