HTTP错误401.1 – 从本地IIS未经授权
我已经在我的本地机器上创建了在调试模式下工作正常的网站但是当我把网站放在我机器的本地iis(7.5)上时我得到了
HTTP错误401.1 – 未经授权您无权使用您提供的凭据查看此目录或页面。
身份validation设置我启用了Windows模拟和Windows身份validation,并且禁用了该部分中的所有其他内容
所有文件夹都具有完全权限
谁能告诉我发生了什么事?
作为一个快速和脏的修复,授予IIS_IUSRS
组读取/执行或修改您的Web文件夹的权限… 但不要在互联网面向服务器上这样做 ,请继续阅读….
要正确修复此问题,您应该为您的站点授予应用程序池标识对应用程序的Web文件夹的“ 读取/执行”或“ 修改”权限。 去做这个:
- 打开IIS管理器,导航到部署站点的网站或应用程序文件夹。
- 打开“高级设置”(位于“ 操作”窗格右侧)。
- 记下应用程序池名称,然后关闭此窗口
- 双击“ 身份validation”图标以打开身份validation设置
- 禁用Windows身份validation
- 右键单击“ 匿名身份validation”并单击“
Edit
- 选择
Application pool identity
单选按钮,单击OK
- 从左侧的IIS管理器树中选择“应用程序池”节点,然后选择在步骤3中记下的“应用程序池”名称
- 右键单击并选择“ 高级设置”
- 展开Process Model设置并从“Built-in account”下拉列表中选择
ApplicationPoolIdentity
,然后单击OK
。 - 再次单击“
OK
以保存和关闭“应用程序池”高级设置页面 - 打开管理员命令行(右键单击CMD图标并选择“以管理员身份运行”。它将位于开始菜单上的某个位置,可能位于“附件”下。
- 运行以下命令:
icacls
例如:
icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)
如果一切都很好icacls.exe
将报告:
处理过的文件:c:\ inetpub \ wwwroot \ mysite 成功处理了1个文件; 处理0个文件失败
我也有同样的问题。 我只是删除该应用程序。 创建了一个新的floder并再次托管它。 问题解决了。
来得有点迟,但我有时会忘记的另一种选择是时差。 在域环境中,运行“Net Time / SET”以与AD Box同步。
补充阅读:
为了使所有这些工作并确保安全性,域控制器和客户端必须具有相同的时间。 Windows操作系统包括时间服务工具(W32Time服务)。 如果相关计算机之间的时间间隔在最大启用时间参数范围内,则Kerberos身份validation将起作用。 默认值为五分钟。 您还可以关闭“时间服务”工具并安装第三方时间服务。 当然,如果您在进行身份validation时遇到问题,则应确保域控制器和遇到问题的客户端的时间正确。 (来源: https : //sourcedaddy.com/windows-7/server-authentication.html )
更重读:
….此外,IT专业人员应了解Windows时间服务的工作原理,因为Kerberos安全性高度依赖于时间服务。 ….(来源: https : //redmondmag.com/articles/2012/02/01/understanding-the-essentials-of-the-kerberos-protocol.aspx )