我已经从VS模板(MVC)设置了Web应用程序,然后启用Windows身份验证。
<authentication mode="Windows" />
<authorization>
<allow roles="ABC\Domain Users" />
<deny users="*" />
</authorization>
然后将Web应用程序发布到IIS服务器。
工作正常,当从客户端计算机请求应用程序的索引页时,它会自动登录到我,并使用以下链接http://myteamserver.mycompany/myapplication
与IE进行了测试。
但是,如果我将RDP发送到服务器(托管IIS的\\myteamserver.mycompany
),并在IE中打开相同的链接,即使输入正确的凭据后,它也会不断提示输入凭据,我将被拒绝访问。 / p>
错误消息:
HTTP错误401.2-未经授权 由于身份验证标题无效,因此您无权查看此页面。
问题:在客户端计算机上运行IE和在服务器上运行IE有什么区别?
我检查服务器上的IE设置,选中了“启用集成Windows身份验证”。我也可以RDP到另一台服务器,从那里我可以毫无问题地访问Web应用程序。
答案 0 :(得分:0)
原来是Windows的安全功能:
症状:
当您使用标准域名(FQDN)或自定义主机标头来浏览运行Microsoft Internet信息服务(IIS)5.1或更高版本的计算机上承载的本地网站时,您可能会收到一条类似于以下内容的错误消息:HTTP 401.1-未经授权:登录失败
当网站使用集成身份验证并且其名称映射到本地回送地址时,就会发生此问题。
注意如果您尝试直接在服务器上浏览网站,则只会收到此错误消息。如果您从客户端计算机浏览该网站,则该网站将按预期工作。
原因:
..环回检查安全功能,旨在帮助防止对计算机的反射攻击。因此,如果您使用的FQDN或自定义主机头与本地计算机名不匹配,则身份验证将失败。
如果我使用localhost或IP而不是FQDN,它将起作用。