由域外的用户将文件上载到域内的文件夹

时间:2013-10-30 20:07:45

标签: c# .net file-upload

如果应用程序与targetpath在同一个域中工作,那么这部分代码就可以工作。 但是我需要应用程序在域外工作,并且可以将文件复制到域内的文件夹中。

当我尝试上传文件时不起作用,因为文件夹访问需要用户和密码才能访问该文件夹。 如果我尝试在域外打开目标路径,Windows会要求输入凭据。

那么,我如何在代码上传递用户和密码?

    private void btnAnexar_Click(object sender, EventArgs e)
    {
        String input = string.Empty;
        OpenFileDialog dialog = new OpenFileDialog();

        dialog.Filter ="All files (*.*)|*.*";

        dialog.InitialDirectory = "C:";
        dialog.Title = "Select a text file";

        if (dialog.ShowDialog() == DialogResult.OK)
            input = dialog.FileName;

        try
        {
            string fileName = dialog.SafeFileName;
            string extension = Path.GetExtension(fileName);
            string sourcePath = Path.GetDirectoryName(input);
            string sourceFile = System.IO.Path.Combine(sourcePath, fileName);

            copia = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + extension;

            MakeUnique(targetPath + "\\"+ copia);

            string destFile = System.IO.Path.Combine(targetPath, copia);


            if (!System.IO.Directory.Exists(targetPath))
            {
                System.IO.Directory.CreateDirectory(targetPath);
            }

            System.IO.File.Copy(sourceFile, destFile, true);
            linkLabel1.Text = "...\\" + copia;

            if (input == String.Empty)
                return; //user didn't select a file to open
        }
        catch (Exception e3)
        {
            Console.WriteLine(e3.ToString());
        }
    }

1 个答案:

答案 0 :(得分:0)

您运行该程序的用户需要具有目标文件夹的写入权限。您需要是具有更改目标目录的读/写权限的用户,或者具有此类用户的凭据才能在代码中执行此操作。