Мой вопрос касается чтения Acr_Values внутри пользовательского ProfileService.
Так что в настоящее время у меня возникают проблемы при добавлении заявки TenantID для пользователя.Я использую IdentityServer4 с ASP.net core 2.2 и платформой сущностей.
Запуск клиента настроен следующим образом.Клиент:
options.Events.OnRedirectToIdentityProvider = context =>
{
// Set tenant host
context.ProtocolMessage.AcrValues = $"tenant:{context.HttpContext.Request.Host.Host}";
return Task.FromResult(0);
};
IdentityServer4 ProfileService:
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
... code ommitted
var user = await _userManager.FindByIdAsync(sub);
if (user == null)
{
//Skip
}
else
{
var validatedRequestDictionary = context.ValidatedRequest.Raw.AllKeys.ToDictionary(s => s, s => context.ValidatedRequest.Raw[s]);
... code ommitted
}
}
Каким-то образом значения Acr_Values доступны во время входа в систему, но не впоследствии во время запроса GetProfileDataAsync ().
IЧитал на сайтах, что этот context.ValidatedRequest.Raw должен содержать acr_values.Это просто не так, и я не могу понять, почему этого здесь не хватает, но доступно при входе в контекст.
Я искал ответы на SO, но действительно не нашел ничего, что могло бы помочья здесь.Хотите знать, если кто-то знает, что я делаю здесь не так.