У меня MVC приложение, которое интегрировано с ADFS.
Сводка
Я устанавливаю сеанс перед вызовом аутентификации ADFS. После возврата вызова ADFS сеанс был потерян, который я установил ранее.
Подробное описание
Шаг 1 Вызов URL-адреса приложения
https://hrcentral/mainmodule/expense/index
шаг 2 Вышеупомянутый вызов перенаправляет запрос к компоненту WIF, который является httphandler в моем приложении, следовательно, url: https://hrcentral/federationMetaData/wif.axd? ReturnUrl = https://hrcentral/mainmodule/expense/index
Web.config У меня есть настройка, как показано ниже для перенаправления
<authentication mode="Forms">
<forms loginUrl="~/FederationMetadata/WIF.axd" name="smartForms" />
</authentication>
Шаг 3: установка сеанса внутри чтения httphandler WIF.axd, возвращающего URL из строки запроса
HttpContext.Current.Session["ReturnUrl"]="https://hrcentral/mainmodule/expense/index";
После настройки сеанса он будет перенаправлен в ADFS
Шаг 4 Аутентификация ADFS и запрос POST https://hrcentral/federationMetaData/wif.axd будут отправлены в тот же обработчик WIF. У нас есть условие для проверьте, является ли запрос POST или НЕТ. Поскольку этот запрос представляет собой POST, ранее сохраненный сеанс, который содержит ReturnUrl и пытается перенаправить назад и приземлиться в наше приложение.
Теперь проблема заключается в сеансе, который установлен на шаге 3 (HttpContext.Current.Session [" ReturnUrl "] = ReturnUrl) не доступен после перенаправления из ADFS в wif.axd. Вообще любой сеанс, любой сеанс, который установлен в нашем приложении, теряется после перенаправления из ADFS.
Аутентификация будет происходить после этого она будет перенаправлена на https://hrcentral/mainmodule/expense/index
Настройка сеанса