У меня проблема с iframes и cookies в многодоменном веб-приложении.
Как раз перед тем, как я начну, я очень хорошо знаю, что приложение 1 в домене 1 не может получить доступ или установить файл cookie приложения2 на домен2. Так что это не проблема новичка.IE тихо отбрасывает файлы cookie на странице iframe (SSL)?
Проблема заключается в следующем:
У меня есть WEBSITE1, расположенный в https://test.xyz-abc.ch/FM_xyz/w8/index.html
и а ReportServer (WEBSITE2), расположенный в https://www8.company-asp.ch/ReportServer
Суженная вниз версия этой проблемы заключается в следующем:
Я положил это содержание
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
</head>
<body>
<iframe src="www8.company-asp.ch/ReportServer/login.aspx" width="1000" height="1000" ></iframe>
</body>
</html>
в файл «ifrm.html» с URL
https://test.xyz-abc.ch/FM_xyz/w8/ifrm.html
Теперь независимо от того, что я ставлю, как имя пользователя/пароль в форме ReportServer, он не работает (имя пользователя и пароль 120% правильно, и существует и имеют все необходимые разрешения).
Если я делаю то же самое в Google Chrome или Firefox, то он работает, я могу войти в приложение-отчет, содержащееся в iframe.
Но в Internet Explorer вы можете (пытаться) войти, но всегда оставаться на экране входа в систему, потому что по неизвестной причине он либо не создает cookie, либо не отправляет cookie.
Если я запускаю сервер отчетов за пределами iframe, я могу войти в систему и открыть отчеты в Internet Exploder.
Обратите внимание, что ReportServer работает в режиме проверки подлинности с помощью файлов cookie, а не в Windows Authentication.
Кроме того, проблема не является специфичной для ReportServer, я могу разместить любое приложение, которое использует файлы cookie для аутентификации там, и они также терпят неудачу - но только в Internet Exploder все отлично работает в Chrome и Firefox.
Я нахожу это странным, так как - если я запускаю того же приложения (site1) на
https://www6.company-asp.ch/FM_xyz/w8/index.html
и имеют ReportServer на том же домене, в
https://www8.company-asp.ch/ReportServer
, то он работает.
Кто-нибудь знает, в чем проблема или может быть (я имею в виду, кроме того, что IE является частью программного обеспечения sh * t)?
Единственное, что я могу представить в качестве разницы между рабочим и нерабочим вариантом, это то, что основной домен (поддомен отличается в обоих примерах) отличается.
Является ли это (по дизайну) проблемой SSL в IE (= серьезная ошибка?), Или это может быть проблемой при неправильной настройке SSL/SSL-сертификата?
Edit:
Да, я знаю, что могу отключить его, как в <see below>
, но это не является приемлемым решением.Я не могу сказать клиенту рассказать всем своим сотрудникам об изменении этого параметра в своем IE. Во-первых, это никогда не работает, во-вторых, у них может не быть разрешения на изменение этих параметров, в-третьих, ИТ-отдел может не разрешить его по каким-либо причинам, а в-четвертых, потому что глупо просить клиентов изменить параметры своих браузеров. .
Edit 2:
Это получить хуже. Это P3P, я получил его для работы в тестовом домене, используя заголовок P3P через web.config.
Но нельзя добавить заголовки P3P в web.config ReportServer, поскольку он работает на каком-то внутреннем IIS6.
Хм, может быть p3p http: // stackoverflow.com/questions/389456/cookie-blocked-not-saved-in-iframe-in-internet-explorer –