IIS 7.5 Windows身份validation不在外部工作

我试图连接到我们创build的asp.net网站。 它使用Windows身份validation,并拒绝访问未经身份validation的用户

web.config中:

<authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization> 

该网站在我们的DMZ。 服务器连接到域。 当我尝试从我们的内部networking连接到网站时,它没有任何问题。 我得到一个需要身份validation的popup框,填写我的凭据,我可以进入该网站。

当我从外部networking连接时,它不起作用。 浏览器正在连接到该网站,但从未显示popup框。 最终我得到一个连接被重置

显然,防火墙将我的请求视为漏洞,并将其屏蔽。 这个消息可以在firewal的networking包中find:

 401 - Unauthorized: Access is denied due to invalid credentials. 

这是我从内部位置连接到站点时所得到的错误,并单击取消或填写错误凭据。

我已经试过这个没有运气:

  • 将NTLM移到我的提供者的顶部
  • 使用Kerberos身份validation
  • 检查IIS中的模块:WindowsAuthentication和WindowsAuthenticationModule都在那里
  • 将DisableStrictNameChecking和DisableLoopbackCheck添加到registry
  • 允许匿名身份validation(IIS级别)
  • 允许基本身份validation(IIS级别)
  • 允许所有用户使用Windows身份validation(在web.config中):基本上删除授权节点。 这使用匿名和它的作品。 该网站可以访问,但用户没有通过身份validation,并没有看到他的个人报告(如此无法使用)
  • 更改应用程序池用户
  • 授予arp文件夹的访问权限给IUSR

为什么当我去现场时有两个401状态? 这会导致防火墙阻止stream量,从而不会显示“需要身份validation”popup窗口。

因为我们使用NTLM,所以有401个数据包进行多次往返。 我们的防火墙看到,这是一个powershell攻击,并阻止它。 最后,我们通过configuration防火墙来解决这个问题,并且在防火墙将其视为漏洞之前允许多个401个数据包。 我们的系统设置的方式我们不能使用Kerberos。 它只发送一个401包,不会被我们的防火墙阻塞(在他原来的configuration中)

感谢@TristanK的答案。

同样的问题在这里,但我想我很幸运,find了解决办法。 看起来这里也是一个防火墙的问题,但是禁用时却没有改变。 本地主机的访问效果很好,但不是来自同一个networking或互联网。 我试图改变每一个值没有运气,但最后我已经尝试编辑错误消息的function设置(我的服务器有自己的错误信息),似乎解决了这个问题。 我有本地和远程的详细错误 。 更改详细的错误后 ,loginpopup窗口工作得很好! 🙂