2010-09-21 20 views
1

Je fais l'emprunt d'identité d'un compte d'utilisateur non administrateur dans une application qui s'exécute en tant qu'utilisateur admin (en utilisant les fonctions LogonUser(), DuplicateToken() et WindowsIdentity.Impersonate()). Étant donné que ce compte d'utilisateur est temporaire, j'ai également besoin de charger un profil utilisateur (en utilisant la fonction native LoadUserProfile()). Toutes les méthodes s'exécutent avec succès (aucune dernière erreur n'est définie) et l'identité actuelle est l'utilisateur non administrateur imponé comme prévu. Cependant, lorsque j'essaie d'exécuter un nouveau processus avec System.Diagnostics.Process.Start(), j'obtiens une erreur:Impossible d'exécuter en tant qu'utilisateur non administré par l'utilisateur - accès refusé

L'accès est refusé.

Lorsque j'essaie d'exécuter manuellement le même scénario avec runas/profile/user: mynonadmin user, tout fonctionne correctement.

Qu'est-ce qui me manque ici?

Répondre

0

Il y a quelque temps.

L'utilisateur avec emprunt d'identité n'avait pas accès au CWD défini sur l'objet Process. Créez un objet ProcessStartInfo et définissez le répertoire de travail à un emplacement auquel l'utilisateur emprunté a accès.