ユーザーに次のロールを割り当てることができるアプリケーションがあります。
1人のユーザーが2つ以上の役割を割り当てている場合があります。 SuperAdminとUserの両方。私のアプリケーションはクレームを使用しているため、クレームを介してユーザーロールも認証したいです。のような:
[Authorize(Roles="Admin")]
残念ながら、ClaimTypes.Roleに複数のロールを追加する方法を知りません。私は次のコードを持っています:
var identity = new ClaimsIdentity(new[] {
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email),
new Claim(ClaimTypes.Role, "User", "Admin", "SuperAdmin")
},
"ApplicationCookie");
ご覧のとおり、説明のためにロールを追加しようとしましたが、明らかに間違った方法で行われたため、機能しません。したがって、どんな助けも大歓迎です。
クレームIDは、同じClaimTypeを持つ複数のクレームを持つことができます。これにより、特定のユーザーロールが存在するかどうかを確認するためにHasClaimメソッドを使用できるようになります。
var identity = new ClaimsIdentity(new[] {
new Claim(ClaimTypes.Name, name),
new Claim(ClaimTypes.Email, email),
new Claim(ClaimTypes.Role, "User"),
new Claim(ClaimTypes.Role, "Admin"),
new Claim(ClaimTypes.Role,"SuperAdmin")
},
"ApplicationCookie");