0

我有一个在 Linux 服务器上运行的 asp.net 核心 web api(使用 PCF 云)。我想将用户凭据从 Angular 应用程序传递到此 Web api。我尝试使用 angular 选项 withCredentials = true 但它没有传递用户窗口登录 ID。

在 Asp.net Core web api 上,我尝试了多个选项,例如

Context.User.Identity.Name
Environment.Username
_httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value

但似乎没有任何效果。我试图在谷歌上找到它,但没有运气。按照此网址进行设置,但它也无法正常工作...

https://www.koskila.net/how-to-get-current-user-in-asp-net-core/

如果我在 Windows 机器上本地运行服务,那么一切正常,我可以在我的 web api 中获取用户 ID。我还尝试在 Windows 服务器 IIS 上托管这个 asp.net 核心 web api,它也运行良好。

当我在 PCF Linux 机器上托管我的服务时,唯一的问题就出现了。我可以理解 Linux 不支持 Windows 身份的概念,但是有什么方法可以将用户名和域传递给 Linux 上的 asp.net 核心,我不需要完整的 Windows 身份,只需用户名即可。

4

1 回答 1

0

是的,同时没有。要支持 Windows 身份验证,您需要在同一个域中,并且您的操作系统可以将凭据传递给 Web 服务器(它应该支持这种身份验证类型)。

与 UI 没有任何关系。如果您将在本地尝试它,您会在幕后发现很多真正验证您身份的请求。

我知道大多数流行的 Web 服务器都可以通过大量配置来做到这一点,比如密钥导入,如果不更改 AD,你就无法做到这一点。

我认为你需要这样的东西https://www.axians-infoma.de/techblog/windows-authentication-in-docker-containers-just-got-a-lot-easier/

于 2019-08-15T20:24:01.230 回答