Я занимаюсь разработкой веб-сайта на основе Angular, на котором пользователю необходимо войти в систему с помощью стороннего поставщика аутентификации OAuth2. . Net Базовый веб-API является бэкэндом. Ответ, полученный от конечной точки пользователя, имеет формат JSON и имеет следующий формат:
{
"dataSources": {
"profile": {
"username": "xyz"
}
},
"profile": {
"id": "87dfkajdfd998df"
},
"errors": {}
}
Код, который я сейчас использую, выглядит следующим образом:
builder.AddOAuth(oauth2Configuration.Issuer,
options => {
options.ClientId = oauth2Configuration.ClientId;
options.ClientSecret = oauth2Configuration.ClientSecret;
options.Scope.Add(oauth2Configuration.Scope);
options.ClaimsIssuer = oauth2Configuration.Issuer;
options.CallbackPath = new PathString(oauth2Configuration.ResponseType);
options.AuthorizationEndpoint = oauth2Configuration.Authority;
options.TokenEndpoint = oauth2Configuration.EndSessionEndpoint;
options.UserInformationEndpoint = oauth2Configuration.UserInfoEndpoint;
options.SaveTokens = true;
// Below mapping does not seem to work
options.ClaimActions.MapJsonSubKey(ClaimTypes.Name, "dataSources", "profile.username");
options.ClaimActions.MapJsonKey(ClaimTypes.SerialNumber, "profile.id");
// Remaining code
})
После при проверке подлинности с использованием приведенного выше кода список утверждений всегда пуст.
Кто-нибудь сталкивался с подобной ситуацией, в которой сопоставление утверждений выполнялось для пользовательских JSON данных?