Emprunt d’identité en .net (C #) et ouverture d’un fichier via Process.start

Salut, je faisais une usurpation d’identité en utilisant le LogonUser comme il a été expliqué à de nombreux endroits.

(J’ai utilisé la grande bibliothèque de classe introduite ici , mais le principe semble être le même partout sur le Web).

J’ai réussi à imiter et à aller dans un endroit que mon utilisateur “normal” ne peut pas. Mais lorsque j’essaie d’ouvrir par programmation un fichier doc , ou un fichier txt ou autre, à l’aide de Process.Start , le Process.Start erreur Process.Start .

“Il n’y a pas assez de mémoire ou d’espace disque pour exécuter Word.”

Je peux commencer word par programmation en utilisant mon utilisateur normal, mais ensuite, lorsque j’essaie d’ouvrir le fichier spécifique par programmation en utilisant l’autre utilisateur, je reçois:

“access refusé”.

Par ailleurs, lorsque je me connecte manuellement à mon ordinateur, cet autre utilisateur dispose des permissions nécessaires pour ouvrir le fichier.

Cela sent un problème avec ProcessStartInfo.LoadUserProfile. La valeur par défaut est false, avec pour effet secondaire que le processus démarré verra les parameters de registre HKCU de votre compte, pas ceux avec l’identité. Les programmes Office ne vont pas aimer ça.

Attention, vous devrez peut-être également définir UseShellExecute sur false pour que ce paramètre soit effectif. Cela entravera votre capacité à démarrer Word en passant simplement un fichier .doc comme nom de fichier. Vous devrez utiliser “winword.exe” à la place.