我使用 .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/