Pet*_*iFi 42 c# windows asp.net iis windows-authentication
我最近有一个令人讨厌的问题,让Windows身份验证在IIS 7.5(Windows 7 Pro)的本地实例上运行到ASP.net 4.0站点.我按照基本步骤.
IIS身份验证
编辑web.config
<authentication mode="Windows" />
Run Code Online (Sandbox Code Playgroud)
这在启用Windows身份验证方面做得很好但是每次登录尝试都被拒绝并最终返回401.1错误.这就是问题的起源.似乎有很多原因可以在Web上详细记录,包括Stack Overflow.
我试过了:
但一切都无济于事,可怕的401.1仍然存在.
这确实是"看不见树木"的案例.我设法找到的所有解决方案(如果你愿意,都称之为糟糕的搜索参数)都没有为我工作,所以我认为值得发布这个问题,希望能提供一个明确的答案,对于遇到同样问题的人来说更容易找到.
Pet*_*iFi 73
这里的问题是Windows的现代版本(Windows XP SP2,Windows Server 2003 SP1及更高版本)包含一个环回检查安全功能,旨在帮助防止对您的计算机进行反射攻击.因此,如果您使用的FQDN或自定义主机标头与本地计算机名称不匹配,则身份验证将失败.
这可以通过显式指定主机名或禁用环回检查来解决.显然,前者是更受控制的方法.
有关如何做到这一点的详细信息可以在MSDN:896861上找到
希望这有助于某人.如果您有任何其他建议或改进,请添加.
小智 5
我想添加 Michael Dark 的评论作为答案,因为我无权修改我的注册表,所以 Pete 的答案对我不起作用,但我能够解决问题。
我通过向我的网站添加一个没有指定主机名和不同端口的新绑定来解决它(因为 localhost:80 用于我)。一旦我尝试从http://localhost:86/mypage调用它,它就起作用了。在浏览器中快速检查后,我用 cURL 测试了几次,它正确地接受并拒绝了我的凭据。
| 归档时间: |
|
| 查看次数: |
29197 次 |
| 最近记录: |