我遇到了一个大型内部企业基于 Web 的应用程序,它在 IIS6 上运行 ASP.NET 3.5,生成 401 个“未经授权”响应,然后是 200 个“Ok”响应(如 Fiddler 所述)。我知道为什么会发生这种情况(集成身份验证强制浏览器重新发送凭据),但我正在寻找一些关于如何最小化或消除这种情况的想法。有问题的应用程序在 WAN 中运行,一些用户遇到高达 250 毫秒的延迟,因此强制执行后续请求可能会对页面加载时间产生显着影响,尤其是当页面上有许多级联下拉列表时。
应用程序的用户是托管桌面环境的内部用户,因此从部署的角度来看,强制浏览器在第一个请求时发送凭据的机制(这甚至可能吗?)是可能的。这适用于需要用户身份的页面,但对于不需要身份验证的资源(WebResource.axd、ScriptResource.axd 和一些自定义 Web 服务),允许匿名身份验证是可能的。我已经在 web.config 中查看了基于每个位置的定义,但结果好坏参半(仍然有许多 401 响应)。
对于处理这种情况的“最佳实践”的任何指导,我将不胜感激。有很多资源可以确定问题,但我发现没有一个资源可以提供可行的解决方案。
谢谢!
编辑:不需要身份验证的资源(即用于级联下拉列表的 Web 服务)可以通过向 Web 配置添加位置条目来匿名请求,但我还没有找到经过身份验证的资源的答案。