在ASP.NET核心控制器中,我可以访问User
以获取所有当前用户声明ClaimsPrincipal
。现在我使用userManager.CreateAsync
添加了一个新用户,添加了一些声明并需要他的所有声明作为其他功能的声明原则。
我尝试了以下方法:
var user1 = new IdentityUserEntity
{
// set username and stuff
};
var result = await userManager.CreateAsync(user1, passwort);
await userManager.AddClaimAsync(user1, new System.Security.Claims.Claim(MyClaimTypes.Stuff, MyClaimValues.Whatever));
之后我创建了一个这样的ClaimsPrincipal:
var user1cp = new ClaimsPrincipal(new ClaimsIdentity(await userManager.GetClaimsAsync(user1)));
问题是,这个ClaimsPrincipal不包含NameIdentifier(也许还有其他东西?)。
如何从我刚刚添加到数据库的用户那里获得完整的ClaimsPrincipal?
答案 0 :(得分:2)
我认为您正在寻找CreateUserPrincipalAsync
的{{1}}方法:
SignInManager