Dans Vista, Windows 7 et versions ultérieures, un mécanisme de sécurité appelé UAC (Contrôle du compte utilisateur) a été ajouté, et si l’UAC est activé, même si l’utilisateur se connecte avec des privilèges administrateur, ses applications ne peuvent pas écrire dans le répertoire système, le registre système et d’autres paramètres qui pourraient affecter par défaut le fonctionnement normal du système. Ce mécanisme améliore considérablement la sécurité du système, mais pour les développeurs d’applications, nous ne pouvons pas forcer les utilisateurs à désactiver l’UAC, mais parfois l’application que nous développons doit fonctionner comme un administrateur, comment accomplir cette fonction ? Voici comment un programme C# implémente la demande à l’utilisateur d’exécuter avec des privilèges administrateur. Dans cet exemple, le programme WinForm démontre qu’un nouveau projet est généré et modifié en conséquence : Méthode 1 : Démarrer via System.Diagnostics.Process.Start() : Méthode d’impémentation : Modifiez le fichier programme généré par défaut, et le code modifié est le suivant : Puisque le code a déjà été commenté, il n’entrera pas dans les détails ; Effet : Puisqu’il est lancé en appelant l’appel externe System.Diagnostics.Process.Start(), lorsqu’il s’exécute directement via VS, il ne demande pas à VS d’avoir besoin de droits d’administrateur, seul le programme lui-même a besoin de droits d’administrateur, ce qui diffère du programme qui génère l’application. C’est la principale différence avec la mise en œuvre de la méthode 2. Méthode 2 : En ajoutant un fichier manifest d’application : Sur le projet Ajouter un nouvel élément, sélectionnez Fichier manifest de l’application et cliquez sur le bouton Ajouter Une fois ajouté, le fichier app.manifest est ouvert par défaut, ce qui va : Modifié en : Ensuite, ouvrez les Propriétés du projet et modifiez le Manifest dans les Ressources de l’onglet Applications pour le nouveau app.manifest. Reconstruis le projet, et quand tu ouvres à nouveau le programme, on te demandera de l’exécuter avec les privilèges administrateur. Notez que si vous commencez à déboguer dans VS, on vous indiquera que cette tâche nécessite que l’application ait des privilèges élevés. Comme montré ci-dessous : Sélectionnez Redémarrer avec d’autres identifiants pour le faire. Méthode 3 : Modifier directement les propriétés du fichier programme Faites un clic droit sur le fichier programme dans l’onglet Compatibilité dans la boîte de dialogue Propriétés qui s’affiche Cochez « Exécuter ce programme en tant qu’administrateur ».
|