【发布时间】:2018-03-07 18:49:17
【问题描述】:
我正在运行一个 ASP.NET 网络表单,它试图使用 new DirectoryInfo(path).GetFiles(pattern) 获取共享文件夹的内容。应用程序池设置为使用域用户名运行,但在执行时它正在模拟我的用户名。我所在的组对树中的所有文件夹具有完全控制 访问权限,并且完全控制 访问共享。此外,我已授予Everyone Read、Read & Execute 和 List folder contents 对文件夹树的访问权限以及 Read &执行对共享的访问。
但是,当执行该语句时,我得到一个 System.UnauthorizedAccessException:'Access to the path '\\server\share\sub1\sub2' is denied.
运行SysInternals的Process Monitor,事件显示:
Desired Access: Read Data/List Directory, Synchronize
Disposition: Open
Options: Directory, Synchronous IO Non-Alert, Open For Backup
Attributes: n/a
ShareMode: Read, Write Delete
AllocationSize: n/a
Impersonating: <MyUsername>
在同一台服务器上运行命令窗口,在获取文件夹的目录列表或访问文件夹中的任何文件时没有错误。
我错过了什么?
为什么在 Process Monitor 中查看响应,ACCESS DENIED 操作为 CreateFile?
没有给予Everyone完全控制(我认为这没有帮助)我想不出更多的权限来授予。
注意,我也试过Directory.EnumerateFiles(path, pattern),结果相同。
更新:
网站上的认证是Windows Authentication和ASP.NET impersonation;匿名访问被禁用。特定页面不会覆盖它。
【问题讨论】:
-
你使用女巫认证吗?尝试将IISUSR添加到文件夹中
-
IIS_IUSRS 是服务器级帐户,不能添加到域组。无论如何,我没有使用匿名访问。
标签: c# w3wp unauthorizedaccessexcepti