使用 UNC 文件路径时,Asp.net FileUploader 不起作用

标签 asp.net permissions file-upload path

首先让我说,我不是 Windows 文件权限方面的专家,所以也许我在这里缺少一些非常基本的东西。

我有一个 Asp.net FileUploader 控件。我有一个文件夹与我想上传文件的 Asp.net 应用程序在同一台机器上。

我希望能够告诉 FileUploader 将文件放入

\\thisMachineName\UploadFolder\

但我总是得到一个异常,指出对该路径的访问被拒绝。

如果我将目录更改为
c:\UploadFolder\

它工作正常。此外,我可以将上述 UNC 放入 Windows 资源管理器,它实际上映射到目录。

有什么想法或想法吗?

--更新注意:这是一个Windows 2000服务器盒子,文件夹有“Everyone”授予所有可能的允许权限。

最佳答案

我经常看到人们做的一件事是他们未能设置共享权限。要设置共享文件夹,您必须执行以下操作:

1) 确定您将连接到共享的帐户
2) 授予此帐户对文件系统的访问权限
3) 授予此帐户对网络文件共享的访问权限

在这种情况下,第 1 项通常意味着检查您的配置或简单地使用进程资源管理器来确定 ASP.NET 在哪个帐户下运行。谷歌上有很多关于如何做到这一点的信息。

2号是显而易见的。您登录存在物理驱动器的计算机,浏览到资源管理器中的文件夹,右键单击它并点击安全选项卡。我们已经这样做了无数次。

第三是人们搞砸的地方。是的,工作人员帐户现在有权访问本地文件系统,但不能通过网络连接到本地文件系统。从安全选项卡跳回网络共享选项卡并查找权限按钮。您将使用它来授予工作人员帐户连接到共享的权限。

我看到的第二个问题是当人们试图将机器 A 上的访问权限授予仅存在于机器 B 上的帐户时。这通常是行不通的。机器 A 和机器 B 都必须属于 A 和 B 都信任的公共(public)域以验证用户身份。大多数情况下,运行 Windows 的企业使用 ActiveDomain 来控制网络上的访问权限。

为了让机器 B 上的 ASP.NET 工作进程访问机器 A 上的共享,工作进程必须在网络上经过身份验证的帐户下运行,而不仅仅是本地机器。大多数情况下,您必须在网络上创建一个特定帐户并将该帐户权限授予两台计算机,然后使用该帐户为您的网站运行 ASP.NET 工作进程。

如果你摸不着头脑,那么你有一些学习要做。这东西不容易。我强烈建议阅读以下内容:

http://msdn.microsoft.com/en-us/library/ms978378.aspx

它相对清晰,包含您需要知道的所有内容。

关于使用 UNC 文件路径时,Asp.net FileUploader 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/595547/

相关文章:

asp.net - 获取DataPager当前页码

c# - 大写字母的 URL 编码

java - 从图库中选择图像会出现错误 Android N

jquery-ui - 有没有办法判断最后一个ajax调用是否完成?

Spring 3.0 FileUpload 只能使用 POST 吗?

javascript - 为 JavaScript 函数提供事件参数

asp.net - VS 2008 不断删除并重新添加 <SubType>ASPXCodeBehind</SubType>

PHP上传的文件权限不正确

permissions - 了解 Rabbitmq 权限

javascript - 变量 "$file"的值无效 {};上传值无效