【发布时间】: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