
В корпоративной среде у нас есть приложение, которое просто открывает Outlook с помощью JavaScript, оно выполняет следующий код из iframe:
top.location.href="mailto:[email protected]&subject=some subject"
Когда я использую Internet Explorer 11 в непроизводственных средах, я получаю следующее предупреждение, и я могу нажать «Разрешить», и все будет в порядке.
(это изображение всего лишь пример из интернета, наши домены не представлены в интернете)
Проблема в том, что для производственных сред (одна и та же версия приложения) URL отличается. Когда я нажимаю на ту же ссылку, я получаю сообщение выше, но кнопка Разрешить отключена, и я не могу ее нажать.
Обратите внимание, что сертификаты на продукцию действительны и подписаны правильно.
Почему кнопка «Разрешить» отключена для производства?
решение1
Возможно, разница между компьютерами кроется в реестре.
Эту подсказку можно отключить, выполнив следующие изменения в реестре:
HKCU: Для текущего пользователя:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\ProtocolExecute\mailto]
"WarnOnOpen"=dword:00000000
HKLM: Для всего компьютера:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ProtocolExecute\mailto]
"WarnOnOpen"=dword:00000000
HKLM: Для всего 64-разрядного компьютера, используемого 32-разрядными программами:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ProtocolExecute\mailto]
"WarnOnOpen"=dword:00000000
Если вы не хотите полностью отключать запрос mailto:
, вам следует поискать другие различия, например, в установленном программном обеспечении безопасности.
решение2
Ответ на простом английском языке:Ваша производственная/корпоративная система более параноидальная. У них, вероятно, есть конфиденциальные вещи и/или они не доверяют своим пользователям, чтобы они не нажимали на вещи, так что это усложняет задачу.
Технический ответ:
Я считаю, что это связано с зонами безопасности IE и GPO, которые они установили, что ужесточает/переопределяет настройки по умолчанию, поэтому вам нужно будет работать с администраторами домена в этом производственном требовании. Они, вероятно, захотят добавить ваш веб-сайт/веб-приложение в список доверенных сайтов ИЛИ ослабить свои настройки, которые контролируютmailto
URI (протокол в графическом интерфейсе Windows).
Расположение зон/настроек в графическом интерфейсе: Свойства обозревателя, Безопасность, при выбранном Интернете нажмите Пользовательский уровень, прокрутите вниз до раздела Разное (примерно до середины):
Расположение GPO(в зависимости от зоны и конфигурации пользователя и компьютера [переопределить]):
Computer Configuration\Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Internet Zone\
Computer Configuration\Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Trusted Sites Zone\
User Configuration\Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Trusted Sites Zone\
Этот пост от Microsoft может помочь лучше объяснить
Я не думаю, что это связано с веб-/SSL-сертификатами, поскольку это просто mailto
, проблема заключается в том, чтобы разрешить веб-сайту/браузеру взаимодействовать с приложениями на вашем локальном компьютере (что настраивается в браузере или ПК, поскольку веб-сайт никогда не должен контролировать это)