Как рекомендую, я бы зарегистрировал обратный вызов авторизации url / redirect_url в IdP, который работает.
Но что, если клиент, использующий приложение MVC, попытается получить доступ к странице с неавторизованным состоянием, будет перенаправлен наСтраница входа idsrv.
redirect_url всегда настроен (точка входа на домашнюю страницу).
Чтобы изменить это поведение, мне нужно зарегистрировать все возможные маршруты в IdP.Это не может быть решением!
В методе входа в систему idsrv Я попытался:
Login(string returnUrl)
проверка значения из returnUrl
дает /connect/authorize/callback?client_id=...
Разве returnUrl
не должен иметь URL предыдущей страницы?Как и в обычном приложении mvc: ..
Я пытался заставить Referer сохранить его в сеансе, а затем перенаправить ..
if (!string.IsNullOrEmpty(Request.Headers["Referer"].ToString()))
{
this.httpContextAccessor.HttpContext.Session.SetString("Referer", Request.Headers["Referer"].ToString());
}
Но это не работает Referer имеет нулевое значение ...
Я проверил, что происходит в контексте от служб взаимодействия
var context = await _interaction.GetAuthorizationContextAsync(model.ReturnUrl);
context.RedirectUri
И возвращает /signin-oidc/
Это автоматический способ возврата (Точка входа на главную страницу).
Есть ли шанс получить предыдущий URL, чтобы можно было перенаправить пользователя?
Так что я могу сделать еще?
Я использую гибридный поток для управления следующими клиентами: mvc-приложение, classic-asp, веб-интерфейс