C#-模拟问题:未提供所需的模拟级别,或者提供的模拟级别无效

C#-模拟问题:未提供所需的模拟级别,或者提供的模拟级别无效,c#,impersonation,C#,Impersonation,在这方面的任何帮助都将不胜感激 我有一个在用户PC上运行的控制台应用程序。在该应用程序中,我想模拟管理员帐户,以便将文件写入用户C:\Program files文件夹 尝试此操作时,我收到错误“未提供所需的模拟级别,或者提供的模拟级别无效” 我使用的是LogonUser模拟方法,其中我指定了域、用户名和密码参数以及以下参数: LogonType set to: const int LOGON32_LOGON_INTERACTIVE = 2; LogonProvider set to: const

在这方面的任何帮助都将不胜感激

我有一个在用户PC上运行的控制台应用程序。在该应用程序中,我想模拟管理员帐户,以便将文件写入用户
C:\Program files
文件夹

尝试此操作时,我收到错误“未提供所需的模拟级别,或者提供的模拟级别无效”

我使用的是
LogonUser
模拟方法,其中我指定了域、用户名和密码参数以及以下参数:

LogonType set to: const int LOGON32_LOGON_INTERACTIVE = 2;
LogonProvider set to: const int LOGON32_PROVIDER_DEFAULT = 0;
是否有人知道我必须指定的LogonType和LogonProvider值以实现此目的


我已经验证了我使用的管理员帐户可以写入用户
C:\Program Files
文件夹,因此我猜这应该可以通过代码实现,也可以尝试以管理员身份运行你的应用程序。如果这行得通,那就是你的问题了。您的另一个解决方案是不在该位置写入,而是写入用户的Documents文件夹。感谢您的回复krillgar。问题是我希望应用程序在statrtup上运行。通过使用模拟,我想我可以临时模拟一个管理员用户,只允许我执行文件复制。。。所有这些都在控制台应用程序中,我相当肯定这是不允许的,因为他们在Windows Vista中启动了新的UAT准则。否则,所有病毒都会这样做,并完全控制系统。正如我最初所说,使用不同的文件夹可能是最好的解决方案。是的,但我正在指定我模拟的管理员帐户的用户名、密码和域详细信息。我所做的是一个更广泛的项目的一部分,所以不幸的是,我不得不给用户写“C:\ProgramFiles”。很遗憾,我别无选择。@P_Fitz您能找到解决此问题的方法吗?请尝试以管理员身份运行您的应用程序。如果这行得通,那就是你的问题了。您的另一个解决方案是不在该位置写入,而是写入用户的Documents文件夹。感谢您的回复krillgar。问题是我希望应用程序在statrtup上运行。通过使用模拟,我想我可以临时模拟一个管理员用户,只允许我执行文件复制。。。所有这些都在控制台应用程序中,我相当肯定这是不允许的,因为他们在Windows Vista中启动了新的UAT准则。否则,所有病毒都会这样做,并完全控制系统。正如我最初所说,使用不同的文件夹可能是最好的解决方案。是的,但我正在指定我模拟的管理员帐户的用户名、密码和域详细信息。我所做的是一个更广泛的项目的一部分,所以不幸的是,我不得不给用户写“C:\ProgramFiles”。不幸的是,我别无选择。@P_Fitz你能找到这个问题的解决方案吗?