net core wsfed область изменения на OnRedirectToIdentityProvider - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь изменить область внутри события wsfed. Причина этого в том, что клиентское приложение может вызываться по разным URL-адресам, и на основании разных URL-адресов я меняю шаблон для партнера:

  private Task OnRedirectToIdentityProvider(RedirectContext redirectContext)
        {
            var url = redirectContext.Request.Scheme + "://" + redirectContext.Request.Host.Value + "/";
            redirectContext.Options.Wtrealm = url;

            return Task.CompletedTask;
        }

URL-адрес аутентификации создан без проблем, проблема возникает после входа в систему, я получаю:

SecurityTokenInvalidAudienceException: IDX10214: проверка аудитории не удалось. Аудитория: «[PII скрыт]». Не соответствует: validationParameters.ValidAudience: '[PII скрыт]' или validationParameters.ValidAudiences: '[PII скрыт]'. Microsoft.IdentityModel.Tokens.Validators.ValidateAudience (IEnumerable аудитории, SecurityToken securityToken, TokenValidationParameters validationParameters) в Validators.cs, строка 108

Можно ли изменить область для клиента во время выполнения?

1 Ответ

0 голосов
/ 11 мая 2018

Понял. TokenValidationParameters ValidAudience также должен быть обновлен.

private Task OnRedirectToIdentityProvider(RedirectContext redirectContext)
{
    var url = redirectContext.Request.Scheme + "://" + redirectContext.Request.Host.Value + "/";
    redirectContext.Options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
    {
        ValidAudience = url
    };

    redirectContext.Options.Wtrealm = url;
    redirectContext.Options.SignOutWreply = url + "home/logout";

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