Я настраиваю новый ASP. NET проект API, копируя основы из существующего проекта. Для аутентификации я установил класс, который наследуется от OpenIdConnectServerProvider
. Аутентификация работает нормально в HandleTokenRequest()
. Но в дополнение к access_token
я хочу вернуть некоторые дополнительные данные для клиента при успешном входе в систему. Копируя из существующего проекта, я сделал следующее в HandleTokenRequest()
:
var data = new Dictionary<string, string>
{
{"userId", user.UserId.ToString()},
{"userTypeId", ((int) user.Type).ToString(CultureInfo.InvariantCulture)}
};
var properties = new AuthenticationProperties(data);
var ticket = new AuthenticationTicket(new ClaimsPrincipal(identity), properties, context.Scheme.Name);
context.Validate(ticket);
По какой-то причине, однако, я не возвращаю userId
и userTypeId
в теле ответа. Вот что я получу в ответе:
{
"token_type":"Bearer",
"access_token":"CfDJ...etc",
"expires_in":1209600
}
Очевидно, что мне не хватает какого-то секретного переключателя, который вставит AuthenticationProperties
в тело ответа. Что это?