Asp.net 错误401.3未使用模拟时未授权

Asp.net 错误401.3未使用模拟时未授权,asp.net,iis,authorization,asmx,impersonation,Asp.net,Iis,Authorization,Asmx,Impersonation,我正在尝试访问IIS中托管的老式asmx web服务,我的头撞到了一个401.3错误。我知道有很多资源,但其中大多数都利用模拟,并通过向文件系统添加授权用户的权限,我希望避免这种情况 我的场景基本上是一个IIS Web服务,使用AppPool运行,AppPool作为特定的服务帐户域\用户名+密码运行。此服务帐户对文件夹具有完全控制权,并且匿名身份验证设置为使用AppPool标识 这一切都是好的,但现在我想通过添加Windows身份验证来保护我的Web服务。我这样做了,并在授权部分添加了一个简单的

我正在尝试访问IIS中托管的老式asmx web服务,我的头撞到了一个401.3错误。我知道有很多资源,但其中大多数都利用模拟,并通过向文件系统添加授权用户的权限,我希望避免这种情况

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

这一切都是好的,但现在我想通过添加Windows身份验证来保护我的Web服务。我这样做了,并在授权部分添加了一个简单的。现在发生的是,当我连接到服务器时,我被要求输入用户名和pwd,我提供了一个用户名和pwd,然后我得到一个401.3错误

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

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

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

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

文件夹不是作为应用程序池标识访问的吗

是的,但是上面的模块还检查经过身份验证的用户。您提到您已将匿名设置为使用AppPoolIdentity,因此我希望在您的情况下,这是真的

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

这是独立的,因为FileAuthorization模块在任何方面都起作用


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

首先查找401.3的源代码。调试IIS的响应确实是启动了FileAuthorization模块。有什么办法可以避免吗?我知道我可以禁用该模块,但我想知道是否有任何隐藏设置…顺便说一句,ProcMon没有任何帮助,没有拒绝访问,所有用户都是应用程序池标识。。。最后,我只需禁用FileAuth或向文件夹添加权限。感谢您为我指明了正确的方向。除了删除文件授权之外,没有其他方法可以避免文件授权。您可以尝试向IUSR添加权限,并查看它是否使用该帐户而不是AppPoolIdentity。我尝试了IUSR以及IUSRS组,但没有成功,它必须是已登录的用户。