【问题标题】:Error 401.3 not authorized when NOT using impersonation不使用模拟时出现错误 401.3 未授权
【发布时间】:2019-10-29 06:19:06
【问题描述】:

我正在尝试访问托管在 IIS 中的老式 asmx Web 服务,但遇到了 401.3 错误。我知道那里有很多资源,但它们中的大多数都使用模拟并通过将授权用户的权限添加到文件系统中,我想避免这种情况。

我的场景基本上是一个 IIS Web 服务,运行一个 AppPool,它作为一个特定的服务帐户(域\用户名 + 密码)运行。此服务帐户对文件夹具有完全控制权,并且 Anonymous 身份验证设置为使用 AppPool 身份。

这一切都很好并且有效,但现在我想通过添加 Windows 身份验证来保护我的 web 服务。我这样做并在授权部分添加了一个简单的<deny users="?" />。现在发生的情况是,当我连接到服务器时,我被要求输入用户名和密码,我提供了一个,然后出现 401.3 错误。

我已尝试将自己的读取和执行权限添加到文件夹中,一切正常,但这显然不是一个合适的解决方案,因为我必须继续管理文件夹权限。

我的问题是:为什么经过身份验证的用户需要文件夹访问权限?文件夹不是作为应用程序池身份访问的吗?模拟已禁用,因此我希望这是正确的行为。

【问题讨论】:

标签: asp.net iis authorization asmx impersonation


【解决方案1】:

为什么经过身份验证的用户需要文件夹访问权限?

FileAuthorization 模块要求经过身份验证的用户对文件具有权限。

文件夹不是作为应用池身份访问的

是的,但是上面的模块也会检查经过身份验证的用户。您提到您已将 Anonymous 设置为使用 AppPoolIdentity,所以我希望在您的情况下,这是真的。

模拟已禁用,因此我希望这是正确的行为。

这是独立的,因为 FileAuthorization 模块无论如何都会启动。

对于如何进行故障排除的建议是获取 ProcMon 跟踪,我怀疑您会看到一些 AccessDenied。去看看哪个进程需要什么权限,看看它是否在模拟(用于此检查)。这将告诉您缺少/失败的权限。

【讨论】:

  • 调试来自 IIS 的响应确实是 FileAuthorization 模块启动了。有什么办法可以避免这种情况吗?我知道我可以禁用该模块,但我想知道是否有任何隐藏设置...
  • 顺便说一句,ProcMon 根本没有帮助,没有 ACCESSDENIED 并且所有用户都是应用程序池身份...最后我只需要禁用 FileAuth 或添加权限文件夹。感谢您为我指明正确的方向
  • 没有办法避免文件授权,除了删除它。您可以尝试向 IUSR 添加权限,看看它是否使用该帐户而不是 AppPoolIdentity。
  • 我尝试了 IUSR 以及 IUSRS 组,但没有运气,它必须是登录用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 2014-11-03
  • 2017-01-19
  • 2020-11-15
  • 1970-01-01
相关资源
最近更新 更多