C#Console App使用AD凭据移动文件(非本地)

时间:2014-05-01 17:17:01

标签: c# console

我尝试使用一组不同的凭据移动文件时遇到了一些问题。我有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中的用户分开?

0 个答案:

没有答案