Duplicata possible:
Vérifiez si l'utilisateur actuel est administrateur
J'ai besoin de tester si l'application (écrite en C #, fonctionnant sous Windows XP/Vista/7) fonctionne en tant qu'administrateur (comme dans le clic droit .exe -> Exécuter en tant qu'administrateur, ou Exécuter en tant qu'administrateur dans l'onglet Compability sous Propriétés) .
J'ai googlé et recherché StackOverflow mais je ne trouve pas de solution de travail.
Ma dernière tentative était la suivante:
if ((new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator))
{
...
}
Essaye ça
public static bool IsAdministrator()
{
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
Cela ressemble fonctionnellement à votre code, mais ce qui précède fonctionne pour moi ...
le faire fonctionnellement, (sans variables temporaires inutiles) ...
public static bool IsAdministrator()
{
return (new WindowsPrincipal(WindowsIdentity.GetCurrent()))
.IsInRole(WindowsBuiltInRole.Administrator);
}
ou, en utilisant une propriété d'expression corporelle:
public static bool IsAdministrator =>
new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator);