【问题标题】:IE11 replaces Bearer with NTLM in AngularJS applicationIE11 在 AngularJS 应用程序中用 NTLM 替换 Bearer
【发布时间】:2019-08-28 18:09:58
【问题描述】:

我对这个问题进行了一些研究。这里也有一些答案。接受的建议之一是启用对应用程序根目录的匿名访问。我不能这样做,因为该应用程序只需要 Windows Auth。这里发生了什么。初始页面加载正常。如果我在几秒钟内发出请求(不知道多少秒)它工作正常。但是,如果我等待大约 2 分钟或更短的时间,请求授权标头将被替换为“NTLM + 非常长的字符串”,并且后端返回 406“不可接受”。问题是什么?为什么 IE 会这样做?

谢谢

更新。这是真正有帮助的。这段代码来自我的拦截器:

service.request = function (config) {
    document.execCommand('ClearAuthenticationCache', 'false'); // fixed the problem
    return configureRequest(config);
};

【问题讨论】:

  • 是的,它是基于 IIS 的站点,是的,它可以在多台机器上复制。 406 是特定于应用程序的代码。这意味着请求具有无效的令牌。从应用程序的角度来看,它是无效的,因为“承载”已替换为“网络”选项卡中清晰可见的“NTLM”。
  • 任何人,请帮忙。我真的被这个卡住了。
  • 有没有办法在我们这边重现这个问题来查看和测试以找到任何解决方案或解决方法?如果是,请尝试提供任何示例代码或详细步骤。我们将尝试用它进行测试。感谢您的理解。
  • 我不确定示例。这是整个应用程序。让我告诉你有什么帮助,这可能会给你一个想法。我正在用它更新我的问题。

标签: angularjs token internet-explorer-11


【解决方案1】:

这是真正有帮助的。这段代码来自我的拦截器:

service.request = function (config) {
     document.execCommand('ClearAuthenticationCache', 'false'); // fixed the problem
     return configureRequest(config);
};

【讨论】:

  • 不幸的是,它在 Edge 中不起作用。如果我使用这条线 Edge 将不断提示输入凭据:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多