gpt4 book ai didi

http-status-codes - 根除 401 "Unauthorised"响应,然后是 200 "Ok"响应

转载 作者:行者123 更新时间:2023-12-03 11:01:47 28 4
gpt4 key购买 nike

我有一个大型内部企业基于 Web 的应用程序在 IIS6 上运行 ASP.NET 3.5,生成 401 个“未经授权”响应,然后是 200 个“Ok”响应(如 Fiddler 所述)。我知道为什么会发生这种情况(集成身份验证强制浏览器重新发送凭据),但我正在寻找一些关于如何最小化或消除这种情况的想法。有问题的应用程序在 WAN 中运行,一些用户遇到高达 250 毫秒的延迟,因此强制执行后续请求可能会对页面加载时间产生显着影响,特别是当页面上有许多级联下拉列表时。

应用程序的用户是托管桌面环境的内部用户,因此从部署的角度来看,强制浏览器在第一个请求时发送凭据的机制(这甚至可能吗?)是可能的。这适用于需要用户身份的页面,但对于不需要身份验证的资源(WebResource.axd、ScriptResource.axd 和一些自定义 Web 服务),允许匿名身份验证是可能的。我已经在 web.config 中查看了基于每个位置的定义,但结果好坏参半(仍然有许多 401 响应)。

我将不胜感激有关处理这种情况的“最佳实践”的任何指导。有很多资源可以确定问题,但我发现没有一个资源可以提供可行的解决方案。

谢谢!

编辑:可以通过向 Web 配置添加位置条目来匿名请求不需要身份验证的资源(即用于级联下拉列表的 Web 服务),但我还没有找到经过身份验证的资源的答案。

最佳答案

不幸的是,这是 HTTP NTLM authentication scheme 的产物.

简而言之,浏览器(Internet Explorer 或其他)根本不知道它需要进行身份验证,直到它被包含 WWW-Authenticate 的 401 响应退回。响应头。

WWW-Authenticate: NTLM 的情况下——够烦人的——它需要在单个持久连接上完成两个 401 响应,并且一旦 HTTP 持久连接关闭,就必须重复这个过程。因此,即使您能够让浏览器发起一个盲目尝试 NTLM 的请求,也无法从事务中删除至少一个 401 响应。

我认为您最好的选择是最大化持续连接在空闲时保持打开状态的时间。

关于http-status-codes - 根除 401 "Unauthorised"响应,然后是 200 "Ok"响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694135/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com