繁体   English   中英

访问被拒绝错误-C#

[英]access denied error - c#

我在表格中有一个文本框和一个按钮。我想在单击按钮时将文件保存到在文本框中输入的网络路径中。 我尝试了下面给出的代码。

 private void button1_Click(object sender, EventArgs e)
    {
        string destinationPath = txtFilePath.Text.ToString();
        string sourceFile = @"c:\1.txt";
        string fileName = Path.GetFileName(sourceFile);
        System.IO.File.Copy(sourceFile, Path.Combine(destinationPath, fileName));

    }

如果目标位置提供了更改内容的权限,则此方法工作正常。 如果目的地是“只读”,那么它将给出错误。 如果输入为\\ 192.168.0.24 \\ aqm,则显示以下错误(路径没有写许可权)

拒绝访问路径“ \\ 192.168.0.24 \\ aqm \\ 1.txt”。

无论如何有解决这个问题的方法。 我的意思是,如果目的地是只读的,那么它将提示该系统的用户名和密码,如果用户名密码输入正确,则将文件保存到该目录。 用户知道网络中所有计算机的用户名和密码。 由于某种安全原因,无法为每个系统情况提供写权限。 那就是为什么我正在寻找我上面建议的方法

或任何其他方式? 希望有人帮助我

我可以建议您换种方式。 如果可能,请进行Windows服务。 将服务登录设置为具有管理员权限的帐户。 使用Windows服务进行复制过程。 我在我的一个项目中使用此算法。 如果该服务使用管理员凭据登录,则效果很好。 具有Windows管理员身份凭证的计算机可以轻松在任何网络计算机上复制文件。 例如,在您的服务中放置一个系统计时器。 让服务每5分钟检查一次路径。 如果给定路径中存在文件,请获取文件并通过提供路径将其复制到网络计算机。

您可以要求用户提供用户名和密码,然后将其传递给WNetAddConnection3之类的功能(有关如何从C#中调用它,请参见http://www.pinvoke.net/default.aspx/mpr/WNetAddConnection3.html )。

我认为,如果目标是只读的,则除了通知用户由于目标是只读的原因而无法保存文件之外,您无能为力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM