ASP. NET Core Identity Server 4, потеря данных запроса после повторной аутентификации - PullRequest
0 голосов
/ 26 мая 2020

У меня есть случай с системой заказов (ASP. NET Core 2.2 с аутентификацией Identity Server 4), в которой я отправляю данные формы на внешний API из контроллера для целей оплаты.

Удаленный Api настроен с URL-адресом возврата (после обработки платежа). Проблема в том, что когда пользователь возвращается в мою систему, он больше не аутентифицируется, поэтому он автоматически перенаправляется на сервер идентификации и автоматически повторно аутентифицируется (как Cook ie по-прежнему действителен), но в этом процессе данные, возвращенные из API, теряются. Я могу видеть данные (и полный запрос) в своих журналах, но метод контроллера для URL-адреса возврата никогда не используется (поскольку до этого момента промежуточное ПО обнаружило, что пользователь не аутентифицирован, или это мое предположение). Если я не могу захватить возвращенные данные, я не могу сохранить результаты попытки платежа.

(В целях тестирования я установил атрибут [AllowAnonymous] в методе контроллера return-url, но это не сработало. Это все еще перенаправлено на сервер идентификации.)

Как решить эту проблему, поскольку я не могу справиться с этим в методе контроллера, поскольку к нему никогда не обращаются? (Удаленный Api позволяет передавать настраиваемые параметры, а затем возвращать их в виде строк запроса на обратный URL.)

Спасибо // Джонас

[Изменить]: ответ отправляется некоторые пользовательские данные, такие как адрес et c для веб-службы (это не API для отдыха, извините за смешивание слов). Затем пользователь получает ответ HTML от удаленного веб-сервиса с формой для публикации информации о кредитной карте. На данный момент их больше нет на нашем сайте, после публикации они перенаправляются на обратный URL-адрес на нашем сайте. Здесь они больше не аутентифицируются, но я предполагаю, что у них все еще есть cook ie, поскольку они автоматически входят в систему без необходимости снова вводить имя пользователя и пароль. (так что я предполагаю, что в некотором смысле они все еще аутентифицированы, но система не может получить информацию о пользователе. Информация о пользователе заполняется снова после перенаправления на сервер идентификации и обратно.)

...