Man*_*til 5 asp.net-core-mvc .net-core asp.net-core
我使用.NET Core和MVC创建了一个angular 2应用程序.我想知道用户的登录ID.如何在.net核心中登录用户的ID?
这是我的第一个角度应用程序.我使用以下链接启动 https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/
我想使用Windows身份验证,以获取控制器中的登录ID.
Art*_*aru 14
这实际上取决于您在应用中使用的身份验证类型.
考虑到你提到了Angular,我不确定你使用什么框架进行身份验证,以及你的设置是什么.
为了让您朝着正确的方向前进,您的行动方针将是从用户身份获得相关声明.像这样的东西:
var ident = User.Identity as ClaimsIdentity;
var userID = ident.Claims.FirstOrDefault(c => c.Type == idClaimType)?.Value;
Run Code Online (Sandbox Code Playgroud)
idClaimType存储您的身份的声明的类型在哪里.根据框架,它通常是
ClaimTypes.NameIdentifier(= "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")
或
JwtClaimTypes.Subject(= "sub")
如果您使用的是Asp.Net核心标识,则可以使用它们的辅助方法UserManager来简化对它的访问:
UserManager<ApplicationUser> _userManager;
[…]
var userID = _userManager.GetUserId(User);
Run Code Online (Sandbox Code Playgroud)
假设您正在使用 ASP.NET Identity,那么(在您的控制器操作中):
User.Identity.GetUserId();
Run Code Online (Sandbox Code Playgroud)
或(如果您使用自定义密钥类型)
User.Identity.GetUserId<TKey>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16869 次 |
| 最近记录: |