从usermanager获取ClaimsPrincipal

时间:2017-03-05 16:52:23

标签: asp.net-core claims-based-identity

在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?

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找CreateUserPrincipalAsync的{​​{1}}方法:

SignInManager