asp.net - Windows 身份验证多次请求

标签 asp.net asp.net-mvc iis windows-authentication asp.net-mvc-5

我正在使用 Windows 身份验证来保护 ASP.NET MVC5 应用程序。

一切正常,系统提示我通过浏览器弹出窗口输入凭据,并正确提供内容。

但是我确实经常注意到某些请求被发送了 2 次或更多次,并收到 401(未经授权)代码,但在再次发出请求并返回 200(OK)后不久。

我假设这是与 WWW-Authenticate 和 Authorize 请求 header 协商的一部分,但我不清楚的是为什么即使在一开始就提供了凭据,这也必须一直发生?

这是正常行为吗? 如果没有,如何修复? 如果是,这对性能有很大影响吗?

附件是Fiddler和Firefox开发者控制台的合并截图。

enter image description here

最佳答案

您遇到的是正常行为。这是身份验证如何工作的(非常)简短的描述:

  1. 请求已发送到服务器(没有凭据)=> 未经过身份验证(您的第一个请求)
  2. 服务器响应 401(访问被拒绝)
  3. 浏览器出错并发回凭据 => 经过身份验证(您的第二个请求)

第三步之后,如果服务器没有收到请求的凭据,它会发送另一个 401 响应,浏览器显示 401 错误页面。可以找到更完整的描述 here .

关于asp.net - Windows 身份验证多次请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157783/

相关文章:

c# - InvalidOperationException 调用 ResourceManager.GetString 时

azure - SSL:如何生成可导出到 MMC 中的 .pfx 的 CSR?

c# - 如果记录存在则不插入

asp.net - 字段密码返回空以在编辑模式下查看

json - ASP MVC 区域和 JSON POST

c# - 域信任上的 IIS 自定义错误

c# - .Net Core 和 Microsoft.Web.Administration

asp.net - 除了关闭 cookie 之外,还有什么可能导致 ASP.NET FormsAuthentication Cookie 问题?

asp.net - 调试.Net/IIS崩溃,该崩溃不会因附加调试器而崩溃

c# - ASP.NET MVC 2 本地化/全局化存储在数据库中?