J'ai une application C# qui s'exécute et affiche une icône de plateau. J'ai un programme d'installation pour mon application de plateau qui lance l'application après l'installation. Le programme d'installation requiert des autorisations d'administrateur alors que l'icône de la barre d'état doit être exécutée avec les autorisations normales. Mon installateur casse actuellement ceci - quand l'application de plateau installée est lancée hérite des permissions d'admin du processus d'installation.Comment lancer le programme avec les autorisations de l'utilisateur au lieu des autorisations actives
Dans le cadre de mon programme d'installation, je lance une application C# pour effectuer certains travaux personnalisés. Cette petite application lance actuellement l'application de plateau en appelant:
Process.Start(@"path/to/my/tray/app.exe");
Est-il possible d'invoquer l'application de plateau avec les autorisations de l'utilisateur actuel plutôt que les autorisations élevées données à l'installateur?
J'ai entendu dire que la méthode recommandée pour ce faire est d'avoir un wrapper EXE autour du programme d'installation qui lance le programme d'installation puis lance le programme installé. Je voudrais éviter cela si possible. J'utilise WiX pour construire un programme d'installation MSI, donc j'accepte aussi des solutions qui fonctionnent directement à partir de WiX/MSI.
UseShellExecute est apparemment par défaut à true, donc il semble que cela n'aidera pas, même si je n'ai pas encore essayé. Merci pour votre réponse mais je soupçonne que le wrapper exe sera la seule solution "soignée". – mchr
J'ai maintenant testé cela et cela ne fonctionne pas. J'ai également essayé une DLL C++ en appelant http://msdn.microsoft.com/en-us/library/aa446583%28v=vs.85%29.aspx et en lançant en utilisant le nouveau jeton de sécurité. Cependant, cela ne peut pas modifier l'utilisateur qui possède le processus lancé - seules les autorisations dont dispose le processus lancé. – mchr