2010-10-12 27 views
3

J'essaie d'exécuter des programmes à partir d'un autre programme .NET qui nécessite une élévation en utilisant l'option d'emprunt d'identité de la méthode Process.Start (System.Diagnostics). L'utilisateur pour l'emprunt d'identité est un administrateur local. L'O/S est 2008 et l'UAC est allumé. Chaque fois que l'appel début du processus, je reçois une erreur d'autorisation Win32:Emprunter l'identité dans .NET en utilisant Process.Start et UAC

« L'opération demandée nécessite une élévation »

Répondre

5

Si l'application .NET que vous appelez est configuré correctement dans le app.manifest, vous ne avoir à spécifier quoi que ce soit dans l'appel Process.Start - l'UAC apparaîtra automatiquement.

réglage app.manifest:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
+0

assurez-vous que 'UseShellExecute' est vrai. –

+0

La valeur par défaut de UseShellExecute est réellement true. Mais bon point quand même. – testalino

0
+0

Malheureusement les deux liens n'étaient pas utiles. D'après ce que j'ai lu jusqu'à présent, il semble que dans le cadre de l'UAC, il n'est pas possible d'ouvrir un processus avec une usurpation d'identité et de l'exécuter en même temps. – Dani