访问被拒绝错误 - C#

发布于 2024-09-28 13:43:41 字数 699 浏览 1 评论 0原文

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

 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' 被拒绝。

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

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

I have a text box and a button in a form.i want to save a file into the network path entered in the textbox while clicking the button. i tried the code given below.

 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));

    }

it works fine if the destination provided the permission to change content. If the destination is 'read only' then it gives the error. if the input is \192.168.0.24\aqm , then it shows the error shown below (the path do not have write permission)

Access to the path '\192.168.0.24\aqm\1.txt' is denied.

is there anyway to solve this. i mean, if the destination is read only, then it prompt username and password of that system , if username password entered correct, then save the file to that directory . the user knows the username and password of all the computers in the network. cant give write permission to every system casue of some security reason. thats why i am looking for a method i suggested above

or any other ways??
Hope someone help me

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

画骨成沙 2024-10-05 13:43:41

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

I can suggest you to another way. If it possible, make a Windows Service. Set Service Log On to account which ahve Admin permissions. Make your copy process with Windows Service. I am using this algorithm in one of my projects. It works great, if the service logs in with Admin credentials. The computer have Windows Service with Admin Credentials can easly copy a file on any network machine. For ex, put a System Timer in your service. Let the service checks a path every 5 minutes. If there is a file exist in the given path, take file and copy to network machine by giving path.

微暖i 2024-10-05 13:43:41

您可以要求用户提供用户名和密码,然后将其传递给诸如 WNetAddConnection3(请参阅 http://www.pinvoke。 net/default.aspx/mpr/WNetAddConnection3.html 了解如何从 C# 调用它)。

You can ask the user for a username and password, then pass those to a function like WNetAddConnection3 (see http://www.pinvoke.net/default.aspx/mpr/WNetAddConnection3.html for how to call it from C#).

拧巴小姐 2024-10-05 13:43:41

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

I think if the destination is read only there is not much you can do other than notify the user that the file can not be saved because the dest is readonly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文