2010-02-10 2 views
1

Quand je lance mon C# application Windows Forms sur Windows 7 avec:Dans Windows 7, « Exécuter en tant qu'administrateur » ne fonctionne pas en tant qu'administrateur lorsque l'UAC est désactivé

  • Un utilisateur dans le groupe « Utilisateurs » que n'est pas dans le groupe Administrateurs
  • sur une machine où User Account Control est désactivé
  • par un clic droit sur le fichier EXE et sélectionner « Exécuter en tant qu'administrateur »

Ce code:

WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);

retourne toujours false. Est-ce que ce comportement est attendu?

Répondre

2

Je suis assez sûr que si l'utilisateur n'est pas un administrateur, Exécuter en tant qu'administrateur ne va pas élever le contexte de cet utilisateur pour cette application à celle de l'administrateur. Ce serait un trou de sécurité terrible et la fin de la sécurité renforcée de garder les utilisateurs en tant qu'utilisateurs normaux.

+0

Pourquoi est-ce un trou de sécurité? (en supposant que l'utilisateur doit entrer un mot de passe administrateur) –

+0

Eh bien oui définitivement. Mais il est surprenant qu'il n'y ait pas de message à l'utilisateur à ce stade? –

+1

@Matthew: L'utilisateur N'A PAS besoin d'entrer un mot de passe administrateur. Ce que vous voulez vraiment, c'est la commande "Exécuter en tant qu'utilisateur" et que votre application soit exécutée dans le contexte utilisateur d'un administrateur. @Duncan: Malheureux: oui. Surprenant: Je pense que le jury est sur ce point! :) –

Questions connexes