为什么使用iis 7.5/windows 7的asp.net应用程序上的windows身份验证/模拟失败/

为什么使用iis 7.5/windows 7的asp.net应用程序上的windows身份验证/模拟失败/,asp.net,windows-7,impersonation,windows-authentication,iis-7.5,Asp.net,Windows 7,Impersonation,Windows Authentication,Iis 7.5,我正在排除在配置为Windows身份验证和模拟的ASP.Net站点上无法通过登录对话框的原因 我有一个ASP.NET2.0应用程序,我正在尝试将它部署到带有IIS 7.5的Windows7上。我创建了一个新站点,并将其绑定到localhost和一个完全限定的域名。FQDN位于我的主机文件中,并被重定向到127.0.0.1 该站点还使用我创建的AppDomain运行,采用集成管道模式,并且流程模型标识设置为ApplicationPoolIdentity Web.config包括以下内容: <

我正在排除在配置为Windows身份验证和模拟的ASP.Net站点上无法通过登录对话框的原因

我有一个ASP.NET2.0应用程序,我正在尝试将它部署到带有IIS 7.5的Windows7上。我创建了一个新站点,并将其绑定到localhost和一个完全限定的域名。FQDN位于我的主机文件中,并被重定向到127.0.0.1

该站点还使用我创建的AppDomain运行,采用集成管道模式,并且流程模型标识设置为ApplicationPoolIdentity

Web.config包括以下内容:

<trust level="High" />
<authentication mode="Windows" />
<authorization>
  <deny users="?"/>
</authorization>
<identity impersonate="true"/>`

`
站点目录上的ACL设置为Everyone(完全控制-用于测试)。 应用程序池虚拟帐户(Windows 7 thing)也设置为完全控制站点的物理目录

IIS身份验证已启用ASP.Net模拟和Windows身份验证

当我以localhost的身份连接到站点时,它允许我通过登录提示并加载应用程序,而不会发生意外

当我以此站点/ip/端口的主机头绑定中设置的FQDN连接到站点时,我无法通过登录提示。单击“取消”将生成http 401.1错误页面


为什么?

对此问题的答案是一种称为身份验证环回检查的安全功能,该功能早在Windows 2003 SP1中就引入了,如下所示:

在运行iis的计算机上登录时,我试图使用/etc/hosts文件中定义的指向127.0.0.1的主机头连接到我的iis主机头实例-这是环回方案

它会在各种情况下咬你,比如这个()或者谷歌的这个世界()

修复涉及一些简单的regedit工作:


我也不需要为我的情况启用模拟,因此我禁用了该功能,现在我可以在本地和远程使用伪造的fqdn进行连接。我在archive.org上找到了一个缓存版本:

" 401.1从服务器访问SharePoint时出错

过去,我在设置SharePoint环境(供内部开发使用和客户使用)时多次遇到此问题因此,我认为是时候写一篇关于它的博文了。如果您在Windows Server 2003 SP1或更高版本上运行SharePoint Server 2007或WSS 3.0,那么如果您试图使用服务器本身的主机标题访问SharePoint网站,您将遇到身份验证问题(即,主机文件的portal.mydomain.com指向127.0.0.1)。此问题表现为Microsoft在Windows Server 2003 SP1及更高版本中内置的回送安全检查的结果。回送检查的目的是消除拒绝服务攻击,但它会导致从服务器本地访问SharePoint站点的问题。在典型的生产环境中,这通常是not是一个问题,因为您很少访问SharePoint网站(除了管理中心)从前端web服务器本身。但是,我有物理和虚拟开发环境,其中所有活动都是从服务器进行的,因此,除非您以前解决过该问题,否则这可能会导致一些心痛。您可以在&阅读详细的知识库文章。下面是如何解决该问题的摘要。我通常禁用e环回检查,但不建议在生产服务器环境中使用

方法1:禁用身份验证环回检查 通过将
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
注册表子项中的DisableLoopbackCheck注册表项设置为1,重新启用Windows Server 2003中存在的行为。要将
DisableLoopbackCheck
注册表项设置为1,请在客户端计算机上执行以下步骤:

  • 单击开始,单击运行,键入regedit,然后单击确定
  • 找到并单击以下注册表子项:
    HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  • 在Lsa上单击鼠标右键,指向“新建”,然后单击“DWORD值”
  • 键入
    DisableLoopbackCheck
    ,然后按ENTER键
  • 右键单击禁用环回检查,然后单击修改
  • 在“值数据”框中,键入1,然后单击“确定”
  • 退出注册表编辑器
  • 重新启动计算机。 注意:要使此更改生效,必须重新启动服务器。默认情况下,Windows server 2003 SP1中的环回检查功能处于启用状态,并且DisableLoopbackCheck注册表项设置为0(零)。当您禁用身份验证环回检查,并在NTLM上打开Windows Server 2003 Server for man in The middle(MITM)攻击时,安全性会降低
  • 方法2:创建可在NTLM身份验证请求中引用的本地安全机构主机名 要执行此操作,请对客户端计算机上的所有节点执行以下步骤:

  • 单击开始,单击运行,键入regedit,然后单击确定
  • 找到并单击以下注册表子项:
    HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1\U 0
  • 右键单击MSV1_0,指向“新建”,然后单击“多字符串值”
  • 在“名称”列中,键入
    BackConnectionHostNames
    ,然后按ENTER键
  • 右键单击
    BackConnectionHostNames
    ,然后单击修改
  • 在“值数据”框中,键入用于计算机上本地共享的CNAME或DNS别名,然后单击“确定”
  • 注意:在单独的行中键入每个主机名

    注意:如果
    BackConnectionHostNames
    注册表项作为注册表项类型存在,则必须删除
    BackConnectionHostNames
    注册表项。 7.退出注册表编辑器,然后重新启动计算机。
    "


    发件人:2009年6月5日

    谢谢您的支持。真烦人。我自己也被它咬了。那个链接断了-你能吗