linux - 如何将 Windows Identity 从 Angular 应用程序传递到托管在 Linux 服务器上的 asp.net core 2.0 webapi

标签 linux asp.net-core asp.net-web-api .net-core pcfdev

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

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

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

但似乎没有任何效果。我试着在谷歌上找到它但没有运气。 按照此 url 进行设置,但它也不起作用...

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 身份,只需用户名即可。

最佳答案

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

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

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

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

关于linux - 如何将 Windows Identity 从 Angular 应用程序传递到托管在 Linux 服务器上的 asp.net core 2.0 webapi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482492/

相关文章:

android - 将 base64 图像从 Android 发布到 Azure 移动后端

c++ - 使用 libtar 压缩目录

linux - bash脚本中的 "-?"是什么意思

linux - 创建按状态排序的流程列表

c# - 找不到方法 : 'Boolean Microsoft. IdentityModel.Tokens.TokenUtilities.IsRecoverableConfiguration

asp.net - 如何在asp.net core 3.0中正确实现PayPal支付

c# - 身份服务器 4 无限循环

c# - 如何从 AuthorizeAttribute 自定义类的 HttpActionContext 获取 cookie?

c# - 使用 OWIN 的网络套接字

c - 向 ftw() 发送参数