ASP.NET reCAPTCHA в Internet Explorer Предупреждение SSL - PullRequest
0 голосов
/ 19 октября 2011

Я внедрил решение reCAPTCHA (последняя версия) в мой веб-проект ASP.NET. Он отлично работает в моей локальной среде, но на нашем зашифрованном SSL-сервере я получаю предупреждающее сообщение «Хотите ли вы просматривать только содержимое веб-страницы, которое было доставлено безопасно? , что может поставить под угрозу безопасность всей веб-страницы. " Это происходит только в Internet Explorer.

На этих и других форумах я нашел замену устаревшего сервера на новый googles (старый: https://api -secure.recaptcha.net на новый: https://www.google.com/recaptcha/api), но я не ссылаюсь напрямую на файлы javascript, просто использую библиотеку .net.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

4 голосов
/ 09 августа 2012

Если MVC Helper использует Context.Request.IsSecureConnection, как указал Дан выше, а ваш сервер приложений находится за балансировщиком нагрузки, который перехватывает HTTPS и пересылает как HTTP, тогда OverrideSecureMode, скорее всего, будет false, и рендеринг будетразмещать небезопасно.

Если за балансировщиком нагрузки один из способов найти исходный протокол, это сделать что-то вроде этого (при условии, что у вас есть доступ к полю заголовка X-Forwarded-Proto).

bool isSecureConnection = String.Equals(
        filterContext.HttpContext.Request.Headers["X-Forwarded-Proto"], 
        "https", 
        StringComparison.OrdinalIgnoreCase);
3 голосов
/ 19 октября 2011

При просмотре источника элемента управления элемент управления имеет свойство, называемое OverrideSecureMode, которое при установке на true всегда заставляет элемент управления отображаться через HTTPS.

Помощник MVC , с другой стороны, не позволяет устанавливать это свойство. Кажется, он использует Context.Request.IsSecureConnection, чтобы определить, какое имя хоста использовать; обнаружение, почему это значение неверно для вас, является еще одним способом решения проблемы.

...