Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对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 - Fatal编程技术网

对windows验证的asp.net mvc应用程序中的每个资源(2 x 401.2和1 x 200)进行3次请求

对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

我试图找出为什么我的网站在IE9中速度如此之慢的原因,这时我拿出Fiddler,意识到每个请求都被发送了3次(两次我得到401.2,然后成功)。我在所有浏览器上都验证了这一点,只是Chrome的速度掩盖了这一点(或者这可能与我的网站在IE中的性能问题无关)

我已经在我的开始/结束请求处理程序中设置了断点,并且该请求进入css文件。它没有经过身份验证,响应以401.2发出,我检查了两次,确认我自己没有在任何地方设置响应状态,因此在begin_请求和end_请求之间的某个地方,状态更改为401.2

注意:我有runAllManagedModulesForAllRequests=true,因此我可以配置压缩,但是这个设置不会影响压缩(从Fiddler中可以看到)

一般来说,我对kerberos/activedirectory非常无知,但我无法理解这是一种针对每个请求的普通握手协议(可能是第一次,但不是全部)

我搜索了谷歌,似乎没有任何帮助(添加/删除模块/身份验证提供商等)。我的意思是,我的网站工作得很好,只有当你在引擎盖下看的时候,我才看到三重的请求。注意:当我部署到生产环境时也会发生这种情况,因此这不是特定于服务器的问题


有人见过这个吗?提前感谢。

我想这就是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让我走上了正确的道路。我在上面(我的问题)添加了一条关于我如何解决这个问题的评论。谢谢丹尼尔让我走上了正确的道路。