我尝试使用一组不同的凭据移动文件时遇到了一些问题。我有2台机器,1台机器是笔记本电脑,另一台是服务器。当用户打开我的控制台应用程序时,它会抓取文件并使用可以写入服务器的AD帐户将文件移动到服务器。
我在尝试模仿工作时遇到了困难。我有以下代码:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity idnt = new WindowsIdentity("test@test.com", "test");
WindowsImpersonationContext context = idnt.Impersonate();
for (int i = 0; i < filePaths.Count; i++)
{
string[] fileSplit = filePaths[i].Split('\\');
if (!File.Exists(targetLocation))
{
Console.Write(File.Exists("C:\\New_folder\\test.txt"));
//File.Move("\\\\ITL105076\\c$\\test.txt", targetLocation );
}
}
context.Undo();
如果文件存在与否,则返回true或false。如果我使用模拟运行应用程序,则文件检查将返回false。如果我在没有模拟的情况下运行应用程序,则返回true。
为了进一步测试,我作为&#34;测试&#34;进入笔记本电脑。用户,它仍然产生了相同的结果。如果应用程序模拟当前正在使用它的用户,它仍然是假的并且模拟被删除然后它返回true ..
如何进行模拟工作,以便我可以将文件从笔记本电脑移动到服务器,并且凭据与AD中的用户分开?