![](/img/trans.png)
[英]Get claims and subscription in Web Api Controller (.Net Core 2.1)
[英]How to get claims in .Net Core 3.1 Web API Controller?
我的 ASP.NET Core Web API 中有以下配置:
// Adds Microsoft Identity platform (AAD v2.0) support to protect this Api
services.AddMicrosoftIdentityWebApiAuthentication(configuration);
services.AddControllers(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("email")
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
我有一个 Angular 客户端应用程序,它随每个请求发送 AuthToken。
下面是我的 asp.net WEB API 控制器
[Route("[controller]")]
public class UserController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
//Get User Email ID from Claims
//Get User details from Database
//Return the User Details
...
}
}
在 asp.net WEB API 控制器中,我需要从 AuthToken 获取电子邮件声明。
如何在 .Net Core 3.1 Web API 控制器中获得声明? 有什么最佳实践可以遵循吗?
参考: https ://stackoverflow.com/questions/68817413/how-to-get-user-information-after-login-in-asp-net-core3-1#:~:text=You%20can%20create%20an %20helper%20class%20like%20this%20one%3A
var identity = HttpContext.User.Identity as ClaimsIdentity;
var email = identity?.FindFirst("email")?.Value;
//or
var email2 = User.Claims.FirstOrDefault(x => x.Type == "email")?.Value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.