IE 不要求主体中受保护资源的基本身份验证凭据

IE not asking basic authentication credentials for a protected resource in body

在我的网络应用程序中,我有基本的身份验证,并且登录和注销在所有页面中都成功运行,除了在特定的 public 页面中,我在 body 中请求受保护的资源(图像)授权。
如果我在注销后调用此页面,在请求此图像时,浏览器 Firefox、Chrome、IE11 会出现未经授权的错误 (401)。 不同之处在于,虽然 Firefox 和 Chrome 向我显示要求凭据的领域弹出窗口,但 IE 不会询问我任何内容。
不要求凭据意味着凭据仍保存在浏览器中;在我的应用程序中,我设置了一个标志来发送询问凭据;按顺序我可以在不插入凭据的情况下调用受保护的页面。

所以我选择清除基本身份验证凭据,但我不喜欢这个解决方案:

document.execCommand("ClearAuthenticationCache");

有没有办法强制 IE 也为正文中的资源询问凭据?

a post discussing different options to clear IE's credential cache. And there's an article 关于配置 IE 以提示输入凭据。我总结了三种方式:

  • 以编程方式向客户端发送 401 HTTP 状态(例如 Response.Status = 401)。
  • 将用户重定向到 http://fakeuser:wrongpassword@www.yoursite.com。由于 fakeuser/wrongpassword 不是有效的 Windows 帐户,系统将提示用户输入有效的凭据。
  • 在 Internet 选项的“安全”选项卡中(IE -> Tools/Gear 图标 -> Internet 选项),select 为您的设置设置适当的区域,然后转到“自定义”级别。一直向下滚动到用户身份验证和 select 提示输入用户名和密码旁边的按钮。

还有一篇关于how IE will resend credentials and an article about Internet Explorer prompt for a password的文章,你也可以参考一下。