Est-il possible d'exiger des droits d'administrateur pour une seule méthode ?
Quelque chose comme ça :
[RequireAdminRightsForThisMethod()]
private void TheMethod(){
// Do something
}
Est-il possible d'exiger des droits d'administrateur pour une seule méthode ?
Quelque chose comme ça :
[RequireAdminRightsForThisMethod()]
private void TheMethod(){
// Do something
}
Vous pouvez ajouter un PrincipalPermission
à votre méthode pour demander des privilèges administratifs pour son exécution :
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public void MyMethod()
{
}
Ce point est décrit plus en détail dans l'article suivant :
Principes de sécurité et droits d'administrateur local en C# .Net
Si vous cherchez un moyen d'élever un processus déjà existant, je doute que cela soit possible car les privilèges d'administrateur sont accordés au niveau du processus lors de son démarrage (voir cet article connexe question ). Vous devrez exécuter votre application "en tant qu'administrateur" pour obtenir le comportement souhaité.
Il existe toutefois des astuces qui peuvent vous permettre de faire ce que vous voulez, mais sachez que cela peut entraîner de graves risques pour la sécurité. Consultez le fil de discussion suivant dans les forums MSDN :
Mise à jour (à partir d'un commentaire)
Il semble que si une mise à jour nécessite une élévation, il est préférable que la mise à jour de votre application soit effectuée par un processus distinct (soit un autre exécutable, soit votre application appelée avec un commutateur de ligne de commande). Pour ce processus séparé, vous pouvez demander l'élévation comme suit :
var psi = new ProcessStartInfo();
psi.FileName = "path to update.exe";
psi.Arguments = "arguments for update.exe";
psi.Verb = "runas";
var process = new Process();
process.StartInfo = psi;
process.Start();
process.WaitForExit();
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.