避免401响应为每一个要求使用NTLM
-
10-07-2019 - |
题
我们这里有一个asp.net 3.5应用程序使用NTLM基于windows的认证。系统运行一个私人网络,该网络实际上分布在不同的地理地点(通过连接VPN)。
我们现在正在努力优化该网站的性能。因为NTLM工作,每一个新的请求IIS组成3个不同的请求,同时第2 401反应。我们正在努力尽量减少这些要求仅在开始的本届会议。我们发现 此 解决方案。不幸的是它不改变任何东西,我们继续得到这401响应(其消耗时间)。
为了看到的流量我第一次使用的小提琴手的应用程序。不知怎的,当我使用小提琴手,只有1个认证过程中在会议开始时(正是因为我想),但是当我闭的小提琴手和检查通过查看我可以看到,我还有这401响应每一项请求。
所使用的客户IE6,IIS第6版。
可以有人建议吗?
解决方案
NTLM /协商,不同于所有其它HTTP认证方案,是面向连接的协议。
在IIS,存在控制认证是否将被用于要求先前验证的连接(例如AuthPersistSingleRequest)上的所有请求的各种设置。独立该设置,相信使POST请求时IIS将自动要求重新验证。
如果你的服务器(通过发送一个连接例如:在反应接近头部)损害连接重用则必须解决,因为否则将会发生的重新认证。可以很容易地检查使用招这样的认证重用挫败头。
其他提示
唯一的办法是只登录页上使用NTLM这里使用像饼干
在一个相关的主题;如果您使用的是IIS7.0和kerberos的认证出现AuthPersistNonNTLM=true可以用来避免401往返于每个请求。
http://msdn.microsoft.com/en-us/library/aa347548(VS。90).aspx
你有没有在您的域名尝试这样?
setspn -a FQDNServerName applicationPoolServiceAccount
setspn -a biosServerName applicationPoolServiceAccount
它允许应用程序池来服务NTLM AUTH请求。
这可能是对IE6的安全设置的网站。尝试改变到本地intranett或信任的网站。
我有相同的问题!我现在用的是相同的环境你。除了我看到2个401的,即使在提琴手。我花了几天的那个问题,然后就放弃了它。 AuthPersistence并没有为我工作的。但这里是我找到的联系,也许他们会在你的情况下工作。
http://msdn.microsoft.com/en-us/library /ms525244.aspx
http://technet.microsoft.com/en-us/library /cc786094.aspx
http://technet.microsoft.com/en-us/library /cc781339(WS.10).aspx
我想在两个虚拟目录和网站级别设置标志,但它并没有帮助。您使用的是IIS元数据库资源管理器来编辑这些属性呢?其清洁方式来编辑特性,并且可以帮助不是直接编辑XML文件了。
规避问题的一种方法是插入Cache-Control头中对于不打算在任何网页上频繁地改变的资源的HTTP响应。就我而言,我缓存的CSS(使用外部CSS尽可能优化这个),JS和IMG文件。因为我有大约60得到加载我们的网页上,这些类型的文件,我们能够消除对120的401错误,马上!
确认您使用Cache-Control头,而不是如果改性或基于其中401和304仍然会即使当文件被缓存的产生电子标签的高速缓存。
我是有这个问题,以及不同的是,对我来说,这是造成这主要是JS和CSS文件。我的网站(最喜欢的网站)保持JS和CSS文件中有自己的目录。所以我的解决办法是简单地去在IIS这些目录并启用匿名身份验证(我说的简单,但它历时两年对我来说,工作了这一点,由于这个职位)。目前该网站仍需要Windows身份验证,但对于JS和CSS文件的子目录没有。 IOW,它似乎是完美的工作。
我也绝不会放(为此事或CSS文件)的JS文件敏感信息,建议你也不会。如果你这样做,你会明显要移动这些文件中的敏感信息,这些目录。