ASP.NET Windows身份验证拒绝来自RDP用户的访问

时间:2018-07-10 04:03:09

标签: c# asp.net internet-explorer iis windows-authentication

我已经从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应用程序。

1 个答案:

答案 0 :(得分:0)

原来是Windows的安全功能:

You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or a later version

症状:

  

当您使用标准域名(FQDN)或自定义主机标头来浏览运行Microsoft Internet信息服务(IIS)5.1或更高版本的计算机上承载的本地网站时,您可能会收到一条类似于以下内容的错误消息:HTTP 401.1-未经授权:登录失败

     

当网站使用集成身份验证并且其名称映射到本地回送地址时,就会发生此问题。

     

注意如果您尝试直接在服务器上浏览网站,则只会收到此错误消息。如果您从客户端计算机浏览该网站,则该网站将按预期工作。

原因:

  

..环回检查安全功能,旨在帮助防止对计算机的反射攻击。因此,如果您使用的FQDN或自定义主机头与本地计算机名不匹配,则身份验证将失败。

如果我使用localhost或IP而不是FQDN,它将起作用。