【问题标题】:Add claims when creating a new user创建新用户时添加声明
【发布时间】:2017-01-27 10:08:48
【问题描述】:

我正在使用 ASP.NET Core Identity 创建一个新用户,如下所示:

new User {
  Email = "john@company.com",
  Name = "John"
}

await userManager.CreateAsync(user, "password");

我需要在创建用户时添加声明。我试过了:

new User {
  Email = "john@company.com",
  Name = "John",
  Claims = new List<Claim> { /* Claims to be added */ }  
}

但 Claims 属性是只读的。

最好的方法是什么?

【问题讨论】:

  • 我不希望将数据保存在身份验证 cookie 中。我希望保存向用户添加声明并将其保存到数据库中
  • 我没有对其进行测试,但据我所知,cmets 声称已保存在数据库中。
  • 等待 UserManager.AddClaimAsync(user, new Claim("your-claim", "your-value"));
  • @aguafrommars 是的,没错...您可以添加答案以便我标记它吗?

标签: c# asp.net-core asp.net-identity asp.net-identity-3


【解决方案1】:

您可以使用UserManager&lt;YourUser&gt;.AddClaimAsync 方法向您的用户添加声明

var user = new User {
  Email = "john@company.com",
  Name = "John"
}

await userManager.CreateAsync(user, "password");

await userManager.AddClaimAsync(user, new System.Security.Claims.Claim("your-claim", "your-value"));

或向用户Claims 集合添加声明

var user = new User {
  Email = "john@company.com",
  Name = "John"
}

user.Claims.Add(new IdentityUserClaim<string> 
{ 
    ClaimType="your-type", 
    ClaimValue="your-value" 
});

await userManager.CreateAsync(user);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2015-07-11
    • 2011-03-26
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多