对windows验证的asp.net mvc应用程序中的每个资源(2 x 401.2和1 x 200)进行3次请求
我试图找出为什么我的网站在IE9中速度如此之慢的原因,这时我拿出Fiddler,意识到每个请求都被发送了3次(两次我得到401.2,然后成功)。我在所有浏览器上都验证了这一点,只是Chrome的速度掩盖了这一点(或者这可能与我的网站在IE中的性能问题无关) 我已经在我的开始/结束请求处理程序中设置了断点,并且该请求进入css文件。它没有经过身份验证,响应以401.2发出,我检查了两次,确认我自己没有在任何地方设置响应状态,因此在begin_请求和end_请求之间的某个地方,状态更改为401.2 注意:我有runAllManagedModulesForAllRequests=true,因此我可以配置压缩,但是这个设置不会影响压缩(从Fiddler中可以看到) 一般来说,我对kerberos/activedirectory非常无知,但我无法理解这是一种针对每个请求的普通握手协议(可能是第一次,但不是全部) 我搜索了谷歌,似乎没有任何帮助(添加/删除模块/身份验证提供商等)。我的意思是,我的网站工作得很好,只有当你在引擎盖下看的时候,我才看到三重的请求。注意:当我部署到生产环境时也会发生这种情况,因此这不是特定于服务器的问题对windows验证的asp.net mvc应用程序中的每个资源(2 x 401.2和1 x 200)进行3次请求,asp.net,asp.net-mvc-4,iis-7,iis-7.5,windows-authentication,Asp.net,Asp.net Mvc 4,Iis 7,Iis 7.5,Windows Authentication,我试图找出为什么我的网站在IE9中速度如此之慢的原因,这时我拿出Fiddler,意识到每个请求都被发送了3次(两次我得到401.2,然后成功)。我在所有浏览器上都验证了这一点,只是Chrome的速度掩盖了这一点(或者这可能与我的网站在IE中的性能问题无关) 我已经在我的开始/结束请求处理程序中设置了断点,并且该请求进入css文件。它没有经过身份验证,响应以401.2发出,我检查了两次,确认我自己没有在任何地方设置响应状态,因此在begin_请求和end_请求之间的某个地方,状态更改为401.2
有人见过这个吗?提前感谢。我想这就是NTLM身份验证的工作原理。讨论了该过程。请注意,您需要将AuthPersistSingleRequest设置为false以减少401的数量我认为这就是NTLM身份验证的工作方式。讨论了该过程。请注意,您需要将AuthPersistSingleRequest设置为false,以减少401个的数量,然后展开下面的回答:要解决此问题,请转到IIS Mgr并在服务器级别打开“配置编辑器”。转到部分:system.webServer/security/authentication/windowsAuthentication。并确保更改默认设置(在我的案例中,默认设置在更改之前一直被忽略)。因此,您希望得到的结果是:authPersistNonNTLM=True,authPersistSingleRequest=False。但是,如果已将这些设置为默认设置,请更改它们。申请,然后更改回原来的位置!!!Arghhh画图展开下面的回答:要解决此问题,请转到IIS Mgr并在服务器级别打开“配置编辑器”。转到部分:system.webServer/security/authentication/windowsAuthentication。并确保更改默认设置(在我的案例中,默认设置在更改之前一直被忽略)。因此,您希望得到的结果是:authPersistNonNTLM=True,authPersistSingleRequest=False。但是,如果已将这些设置为默认设置,请更改它们。申请,然后更改回原来的位置!!!我在上面(我的问题)添加了一条评论,关于我是如何解决这个问题的。谢谢Daniel让我走上了正确的道路。我在上面(我的问题)添加了一条关于我如何解决这个问题的评论。谢谢丹尼尔让我走上了正确的道路。