冒充.net(C#)&通过Process.start打开文件

时间:2010-12-12 14:23:03

标签: c# .net impersonation

HI, 我正在使用LogonUser进行一些模仿,因为它在很多地方都有解释。

(我使用了引入here的优秀类库,但原则似乎在整个网络上都是一样的。

我已经成功冒充并去了一个我的“普通”用户不能去的地方。但是当我尝试使用doc以编程方式打开txt文件或Process.Start文件或其他内容时,我收到错误

  

“没有足够的内存或磁盘   运行Word的空间。“

我可以使用普通用户以编程方式启动单词,但是当我尝试使用其他用户以编程方式打开特定文件时,我得到了:

  

“拒绝访问”。

顺便说一句,当我手动登录到我的电脑时,这个其他用户有权打开该文件。

1 个答案:

答案 0 :(得分:1)

这有点像ProcessStartInfo.LoadUserProfile的问题。它默认为false,副作用是启动的进程将看到您帐户的HKCU注册表设置,而不是模拟的帐户。 Office程序不会喜欢这个。

请注意,afaik还必须将UseShellExecute设置为false才能使此设置生效。这将通过简单地传递.doc文件作为文件名来阻碍您启动Word的能力。你需要使用“winword.exe”。