从 IIS 访问 UNC 路径时访问被拒绝

从 IIS 访问 UNC 路径时访问被拒绝

我遇到了一个问题,当我尝试从在 IIS 中运行的 Web 应用程序通过另一台计算机上的 UNC 访问文件夹时,收到拒绝访问错误。现在我确信您和我一样认为这肯定只是一个权限问题,然而发生了以下情况:

  • 该应用程序正在使用模拟,并且其模拟的用户对该文件夹具有完全访问权限。
  • 该文件夹的权限已设置为允许所有人完全控制,如果模拟不起作用,则会出现同样的问题。
  • 该应用程序可以非常顺利地查看此共享中的其他文件夹和文件

Procmon 在访问此文件时显示访问被拒绝错误,其询问的详细信息如下:

Operation: Create File
Result: ACCESS DENIED
Desired Access: Generic Read
Disposition:    Open
Options:    Synchronous IO Non-Alert
Attributes: N
ShareMode:  Read, Write, Delete
AllocationSize: n/a
Impersonating:  domain\user

该应用程序本质上只是尝试从该文件夹中读取内容,仅此而已(创建文件操作实际上只是创建该文件的句柄)。

文件服务器的安全日志中没有表明访问被拒绝错误的事件。

编辑

已为 UNC 访问设置了委派(允许应用程序池用户委派给文件服务器上的 HOST 和 CIFS 服务),使用 Deleconfig 确认这应该有效,但实际上却不行。但是,仅将应用程序池用户设置为允许委派给任何服务(Kerberos)才有效。据我所知,委派文件服务器访问所需的唯一服务是 HOSTS 和 CIFS,因此我不确定它需要访问哪些额外的服务。

答案1

这是来自远程机器上运行的 procmon 吗?

如果是这样,则表明模拟成功(因为它识别了正确的域\用户,对吗?),所以这不是 Windows 身份验证的委派问题。

如果没有,则可能是 Windows 身份验证的委派问题;请尝试 DelegConfig。

如果应用程序使用 \server\share 创建自己的连接 - 即它不是 IIS 中映射到该位置的文件夹 - 那么根据应用程序框架和编程方式可能会出现进一步的细微差别。

答案2

不记得 IIS 是否允许 UNC 访问规范?

可能需要将该区域分配给驱动器号以供 IIS 访问。

相关内容