web-dev-qa-db-ja.com

新しいユーザーを作成するときにクレームを追加する

次のようにASP.NET Core Identityを使用して新しいユーザーを作成しています。

new User {
  Email = "[email protected]",
  Name = "John"
}

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

ユーザーを作成するときにクレームを追加する必要があります。私は試した:

new User {
  Email = "[email protected]",
  Name = "John",
  Claims = new List<Claim> { /* Claims to be added */ }  
}

ただし、Claimsプロパティは読み取り専用です。

これを行う最良の方法は何ですか?

19
Miguel Moura

UserManager<YourUser>.AddClaimAsyncメソッドを使用して、ユーザーにクレームを追加できます

var user = new User {
  Email = "[email protected]",
  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 = "[email protected]",
  Name = "John"
}

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

await userManager.CreateAsync(user);
36
agua from mars