HTTP错误401.1 - 从本地IIS未经授权

时间:2010-10-08 16:36:55

标签: c# iis-7

我在我的本地计算机上创建了可在调试模式下正常运行的网站,但是当我将网站放在我机器的本地iis(7.5)上时,我得到了

HTTP错误401.1 - 未经授权 您无权使用您提供的凭据查看此目录或页面。

身份验证设置 我启用了Windows模拟和Windows身份验证,并禁用了该部分中的所有其他内容

所有文件夹都具有完全权限

谁能告诉我发生了什么?

4 个答案:

答案 0 :(得分:27)

作为快速而又脏的修复方法,将IIS_IUSRS读取/执行修改权限授予您的网络文件夹... 但是“请使用互联网面向服务器,继续阅读....

要正确解决此问题,您应该为您的站点授予应用程序池标识读取/执行修改对应用程序的Web文件夹的权限。要做到这一点:

  1. 打开IIS管理器,导航到部署站点的网站或应用程序文件夹。
  2. 打开高级设置(位于右侧操作窗格中)。
  3. 记下应用程序池名称,然后关闭此窗口
  4. 双击身份验证图标以打开身份验证设置
  5. 禁用 Windows身份验证
  6. 右键单击匿名身份验证,然后点击Edit
  7. 点击Application pool identity
  8. 选择OK单选按钮
  9. 从左侧的IIS管理器树中选择“应用程序池”节点,然后选择您在步骤3中记下的应用程序池名称
  10. 右键单击并选择高级设置
  11. 展开流程模型设置,然后从“内置帐户”下拉列表中选择ApplicationPoolIdentity,然后点击OK
  12. 再次点击OK以保存并关闭“应用程序池高级设置页”
  13. 打开管理员命令行(右键单击CMD图标并选择“以管理员身份运行”。它将位于开始菜单上的某个位置,可能位于附件下。
  14. 运行以下命令:
  15. icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)

    例如:

    icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)

    如果一切顺利icacls.exe将报告:

    processed file: c:\inetpub\wwwroot\mysite
    Successfully processed 1 files; Failed processing 0 files
    

答案 1 :(得分:3)

就我而言,这与权限无关。这是“环回检查”保护。问题是因为我正在从具有IIS的本地计算机进行连接。

症状是:您进行连接,并且浏览器提示您插入凭据3次,然后出现HTTP 401.1错误。

在另一台计算机上进行测试会很好。

某些站点会告诉您禁用“回送检查”,但是您必须将要连接的FQDN域添加到白名单,如以下服务器故障响应所述:

https://serverfault.com/a/485011/415362

答案 2 :(得分:0)

我也有同样的问题。我只是删除该应用程序。创建了一个新的floder并再次托管它。问题解决了。

答案 3 :(得分:0)

有些晚了,但是我有时忘记的另一种选择是时差。在域环境中,运行“ Net Time / SET”与AD Box同步。

其他阅读:

要使所有这些正常工作并确保安全,域控制器和客户端必须具有相同的时间。 Windows操作系统包括时间服务工具(W32Time服务)。如果相关计算机之间的时间间隔在最大启用时间参数之内,则Kerberos身份验证将起作用。默认值为五分钟。您也可以关闭时间服务工具并安装第三方时间服务。当然,如果您在身份验证方面遇到问题,则应确保该时间对于域控制器和遇到问题的客户端而言是正确的。 (来源:https://sourcedaddy.com/windows-7/server-authentication.html

重读:

....此外,由于Kerberos安全高度依赖于时间服务,因此IT专业人员应该了解Windows时间服务的工作方式。 .... (来源:https://redmondmag.com/articles/2012/02/01/understanding-the-essentials-of-the-kerberos-protocol.aspx