gpt4 book ai didi

asp.net-core - 如何在 .NET Core 2.0 中获取登录用户的用户 ID?

转载 作者:行者123 更新时间:2023-12-04 16:20:13 25 4
gpt4 key购买 nike

我使用 .NET Core 和 MVC 创建了一个 angular 2 应用程序。
我想知道用户的登录ID。如何在 .net core 中获取用户的登录 ID?
这是我的第一个角度应用程序。我使用以下链接开始
https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/
我想使用 Windows 身份验证,在 Controller 中获取登录 ID。

最佳答案

这实际上取决于您在应用程序中使用的身份验证类型。

考虑到您提到了 Angular,我不确定您使用什么框架进行身份验证,以及您的设置是什么。

为了让您朝着正确的方向前进,您的行动方针是从用户身份中获取相关声明。像这样的东西:

var ident = User.Identity as ClaimsIdentity;
var userID = ident.Claims.FirstOrDefault(c => c.Type == idClaimType)?.Value;

哪里 idClaimType是存储您的身份的声明的类型。根据框架,它通常要么是
ClaimTypes.NameIdentifier ( = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" )
或者 JwtClaimTypes.Subject ( = "sub" )

如果你使用的是 Asp.Net Core Identity,你可以在 UserManager 上使用他们的辅助方法。简化对它的访问:

UserManager<ApplicationUser> _userManager;
[…]
var userID = _userManager.GetUserId(User);

关于asp.net-core - 如何在 .NET Core 2.0 中获取登录用户的用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46273107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com