我正在使用 Windows 身份验证来保护 ASP.NET MVC5 应用程序。
一切正常,系统提示我通过浏览器弹出窗口输入凭据,并正确提供内容。
但是我确实经常注意到某些请求被发送了 2 次或更多次,并收到 401(未经授权)代码,但在再次发出请求并返回 200(OK)后不久。
我假设这是与 WWW-Authenticate 和 Authorize 请求 header 协商的一部分,但我不清楚的是为什么即使在一开始就提供了凭据,这也必须一直发生?
这是正常行为吗? 如果没有,如何修复? 如果是,这对性能有很大影响吗?
附件是Fiddler和Firefox开发者控制台的合并截图。
最佳答案
您遇到的是正常行为。这是身份验证如何工作的(非常)简短的描述:
- 请求已发送到服务器(没有凭据)=> 未经过身份验证(您的第一个请求)
- 服务器响应 401(访问被拒绝)
- 浏览器出错并发回凭据 => 经过身份验证(您的第二个请求)
第三步之后,如果服务器没有收到请求的凭据,它会发送另一个 401 响应,浏览器显示 401 错误页面。可以找到更完整的描述 here .
关于asp.net - Windows 身份验证多次请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157783/