0
アイデンティティサーバーのクイックスタートアプリケーションを使用していましたが、userinfoエンドポイントを呼び出すときに返されるロール情報を追加します。アイデンティティサーバーのuserinfoエンドポイントにロールを追加する方法
public Claim[] GetUserClaims(UserServiceProxy.Dto.User user)
{
return new Claim[]
{
new Claim(JwtClaimTypes.Name, user.Username),
new Claim(JwtClaimTypes.Email, user.Email),
new Claim(JwtClaimTypes.GivenName, user.Firstname),
new Claim(JwtClaimTypes.FamilyName, user.Lastname),
new Claim(JwtClaimTypes.Subject, user.Username),
new Claim(JwtClaimTypes.Role, user.Role ?? "normal"), //have added this
};
}
、これは私が/接続/ userinfoをエンドポイントに呼び出すと、私は(何の役割も)これを取得しない私のGetProfileDataAsync
if (context.RequestedClaimTypes.Any())
{
var user = UserClient.FindByUserName(context.Subject.GetSubjectId());
if (user != null)
{
context.AddRequestedClaims(UserClient.GetUserClaims(user.Result.User));
}
}
から呼び出されます。
{ "名前": "joe3"、 "given_name": "Joe"、 "family_name": "Three"、 "sub": "joe3"}
はい、重要なことは、あなたの 'ConfigureServices'にあなたは何とかちょうど' ApiResources'に加えて 'IdentityResources'を追加しているということです。あなたが定義した 'IdentityResources'は、' userInfo'エンドポイントで提供されるものになります – Mashton