Aufrufen von IPrincipal.IsInRole unter Windows 7

Wir verwenden NTLM-Authentifizierung in unserer Anwendung, um zu bestimmen, ob ein Benutzer bestimmte Vorgänge ausführen kann. Wir nehmen das IPrincipal der aktuellen Windows-Anmeldung (in WinForms-Anwendungen), wobei @ aufgerufen wi IsInRole, um nach bestimmten Gruppenmitgliedschaften zu suchen.

Um zu überprüfen, ob ein Benutzer ein lokaler Administrator auf dem Computer ist, verwenden wir Folgendes:

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

Dies funktioniert, wenn der aktuelle Benutzer das @ iAdministrator user oder ein anderer Benutzer, der Mitglied des @ iBuiltin\Administrators group.

Bei unseren Tests unter Windows 7 haben wir festgestellt, dass dies nicht mehr wie erwartet funktioniert. DasAdministrator user funktioniert weiterhin einwandfrei, aber jeder andere Benutzer, der Mitglied des @ iBuiltin\Administrators group gibt false für das @ zurüIsInRole Anruf

Was könnte diesen Unterschied verursachen? Ich habe das Gefühl, dass sich eine Standardeinstellung irgendwo geändert hat (in gpedit möglich), kann aber nichts finden, was dem Täter ähnlich sieht.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage