【问题标题】:Missing Negotiate token in Angular HTTP requestsAngular HTTP 请求中缺少协商令牌
【发布时间】:2019-06-01 22:11:39
【问题描述】:

我有一个 Angular 5 应用程序包含在已部署到 IIS 10 的 .NET Core 项目中。此 UI 使用已部署到同一 IIS 服务器但不同站点和应用程序池的 .NET Core API。

登录站点时,系统会提示用户输入域凭据。这是所希望的。当站点对 API 进行第一次 HTTP 调用时,会再次提示用户输入凭据。这是一个问题,绝不能发生。我需要将第一个身份验证令牌传递到对 API 的 HTTP 调用。

我已经通过在 API 和 UI 上启用 ASP.NET Impersonation 来设置 IIS 来处理集成身份验证,但是我可以看到 Negotiate 令牌没有通过 Chrome 开发工具的 HTTP 请求中的 API 发送。

在 Angular 中,我创建了一个 HTTP 拦截器,它将凭据附加到所有请求。这是通过以下方式完成的:

request = request.clone({
  withCredentials: true
});

然而,这似乎并没有修复我预期的丢失的Negotiate 令牌,导致用户仍然被提示两次输入凭据。如何防止用户被提示两次输入凭据?

【问题讨论】:

    标签: angular iis windows-authentication impersonation


    【解决方案1】:

    我发现问题与跨域有关。在托管服务所在的域上执行整个身份验证序列时,我没有遇到任何问题。我没有解决实际问题,但info regarding the solution can be found here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 2017-12-19
      • 2015-04-08
      • 2020-05-26
      相关资源
      最近更新 更多