最近在Windows 7 Pro的本地IIS 7.5上,为一个ASP.net 4.0网站启用Windows身份验证时遇到了麻烦。我按照基本步骤进行。
IIS身份验证
- 禁用匿名身份验证
- 启用Windows身份验证
编辑web.config
<authentication mode="Windows" />
这个方法确实很好地启用了Windows身份验证,但是每次尝试登录都会被拒绝,并最终返回一个401.1错误。这就是问题的起源。似乎有许多原因可以解释这个问题,在网上,包括Stack Overflow中都有相关文档记录。
我尝试过:
- 编辑IIS身份验证“高级设置”以禁用扩展保护和内核模式身份验证
- 编辑IIS身份验证“提供程序”,将NTLM移动到Negotiate之上。
- 编辑IIS.NET授权规则,明确允许用户(以及其他各种组合)。
- 使用各种IIS命令行脚本和调整。
- 在web.config文件中进行各种配置调整。
- 甚至进行了一些文件系统权限调整。
但是所有这些都无济于事,可怕的401.1错误仍然存在。
这真的是一个“树木太多看不到森林”的情况。我找到的所有解决方案都没有起作用(如果您愿意说这是糟糕的搜索参数),所以我认为值得发布这个问题,希望能够为任何遇到同样问题的人提供一个更清晰易懂的答案。