У меня есть два веб-сайта ASP.NET: new.somecompany.com и legacy.somecompany.com.ASP.Net_SessionId cookie через поддомены с использованием IE11
«Новое» - это приложение интрасети, использующее проверку подлинности Windows. «Наследие» - это интернет и интранет; он использует аутентификацию форм.
С сайта «Новый» мой босс хотел бы иметь возможность щелкнуть ссылку и открыть окно браузера на уже зарегистрированную веб-страницу на сайте «Наследие». (Он хочет, чтобы это было сделано без изменений на устаревшем сайте.)
У меня есть решение, которое работает как с Chrome (версия 39.0.2171.95 м), так и с Firefox (версия 33.1.1), но не с Internet Explorer (версия 11.0 .9600.17501). На высоком уровне решение:
- Контроллер на «новом» использует HttpWebRequest для входа в «наследие» с использованием сохраненных учетных данных.
- Контроллер получает cookie «ASP.Net_SessionId» из ответа «legacy» и использует его в . Установите cookie «ASP.Net_SessionId» для домена «.somecompany.com» в браузере.
- От браузера перейти на
https://legacy.somecompany.com/somepage.aspx
.
С Chrome и Firefox https://legacy.somecompany.com/somepage.aspx
отображается в соответствии с хранимыми учетными данными, которые были использованы для входа. В IE 11 отображается страница входа в систему.
Я использовал средство анализатора сообщений Microsoft, чтобы узнать, что передается взад и вперед. В Chrome я вижу, как cookie ASP.Net_SessionId отправляется в HTTP-запросе на somepage.aspx. В IE 11 cookie не отправляется, и я получаю перенаправление на страницу входа в качестве ответа.
Есть ли что-нибудь, что я могу сделать, чтобы заставить это работать в IE 11?
Интересный ответ, но, похоже, требуется внести изменения в устаревший сайт, который находится за пределами текущих границ, которые мне были предоставлены. Я буду иметь это в виду, если другое решение технически невозможно. – bitbucket2013