Значения Acr_value недоступны в ProfileService - PullRequest
0 голосов
/ 17 мая 2019

Мой вопрос касается чтения 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, но действительно не нашел ничего, что могло бы помочья здесь.Хотите знать, если кто-то знает, что я делаю здесь не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...