2011-09-09 5 views
2

J'ai écrit une application WPF. Lorsqu'il est installé sur les machines clientes, il leur est demandé un nom d'utilisateur et un mot de passe afin qu'ils disposent des privilèges d'administrateur pour utiliser l'application.Exécution de l'application WPF avec élévation de l'administration WIX

J'ai besoin de privilèges d'administrateur car mon application ouvre des ports et écrit des fichiers sur le système de fichiers.

Est-il possible d'autoriser n'importe quel utilisateur à exécuter l'application sans être invité à entrer un nom d'utilisateur et un mot de passe administrateur et à élever l'application pour qu'elle s'exécute avec des privilèges d'administrateur?

Merci

Répondre

0

Lorsque votre application est installée, il vous demandera des droits d'administrateur si le programme d'installation a été marqué pour l'exécution d'administration. Cela n'est normalement requis que si vous souhaitez installer un emplacement disponible pour plusieurs utilisateurs, par exemple dans la hiérarchie du dossier Program Files. Un MSI déclenchera une invite UAC par défaut, mais il est facile de make an MSI with WIX that doesn't raise a UAC prompt. Lorsque votre application est exécutée (par un utilisateur sans droits d'administrateur), elle demande des droits d'administrateur si l'application elle-même a été marquée pour l'exécution d'administrateur. Ceci est en partie sous votre contrôle, mais peut être remplacé par les utilisateurs sur la machine client.

Une application qui écrit dans les dossiers du système de fichiers ne nécessite pas de droits d'administration tant que l'utilisateur qui exécute l'application a l'autorisation de ces dossiers. Généralement, vous pouvez faire ce travail en écrivant à un endroit accessible à chaque utilisateur. Cependant, je crois que l'ouverture d'un port nécessite des droits d'administration si l'application fait autre chose que d'interroger des informations statistiques.

Si votre application nécessite des droits d'administrateur et que vous ne voulez pas que vos utilisateurs non-administrateurs voient une invite UAC pendant l'exécution du programme, je vous suggère de diviser votre application en deux parties.

La première partie est un service Windows qui s'exécute sous un utilisateur privilégié tel que LocalSystem et est configuré pour interagir avec les programmes de bureau. Ce service effectue toutes les tâches liées à l'administration et doit être configuré par un installateur qui demande des droits d'administrateur.

La deuxième partie est le programme WPF qui ne fait rien de privilégié. Si vous notez que ce programme WPF n'a pas besoin d'élévation, vos utilisateurs finaux ne verront jamais une invite UAC lors de son exécution, car tout le travail privilégié est effectué par un service qui est toujours en cours d'exécution.

+0

Comment puis-je faire le programme d'installation ne sont pas marquées pour l'exécution admin ... J'ai un app.manifest où je mets Je ne sais pas si cela ne fait rien – TheWommies

+0

@Allen, j'ai mis à jour ma réponse pour inclure un lien qui répond à votre commentaire. – RoadWarrior

Questions connexes