.NET Recaptcha https

Мы начали использовать ASP.NET recaptcha управление, и оно хорошо работает. но одно из требований, которые мы имеем, - то, что весь исходящий трафик пробегается через Https.

Я знаю, что recaptcha поддерживает https, но не ясно, как настроить (или даже если это настраивается) при использовании опции плагина ASP.NET.

кто-либо получил опыт этого?

Я расширюсь немного на том, что я нашел до сих пор....

Пакет Recaptcha содержит 3 общедоступных класса

RecaptchaControl, RecaptchaValidator и RecaptchaResponse

RecaptchaControl управление Asp.NET, recaptcha определенные методы на там, кажется, касаются тем/стиля.

Экземпляр Блока проверки допустимости имеет поле RemoteIP (который я предполагаю, представил бы сервер проверки), но я не могу способ связать это с управлением.

RecaptchaResponse кажется, более или менее представляет перечисление с возможными ответами (допустимый/недопустимый/неудавшийся для соединения).

похож на управление Recaptcha, разумно выбирает https, если запрос был https. Я предполагаю, что это делает то же для проверки, но не ясного из исходного кода http://code.google.com/p/recaptcha/source/browse/trunk/recaptcha-plugins/dotnet/library/

private const string VerifyUrl = "http://www.google.com/recaptcha/api/verify";
private const string RECAPTCHA_SECURE_HOST = "https://api-secure.recaptcha.net";        
private const string RECAPTCHA_HOST = "http://api.recaptcha.net";
--------------------------------SNIP------------------------------------
/// 
        /// This function generates challenge URL.
        /// 
        private string GenerateChallengeUrl(bool noScript)
        {
            StringBuilder urlBuilder = new StringBuilder();
            urlBuilder.Append(Context.Request.IsSecureConnection || this.overrideSecureMode ? RECAPTCHA_SECURE_HOST : RECAPTCHA_HOST);
            urlBuilder.Append(noScript ? "/noscript?" : "/challenge?");
            urlBuilder.AppendFormat("k={0}", this.PublicKey);
            if (this.recaptchaResponse != null && this.recaptchaResponse.ErrorCode != string.Empty)
            {
                urlBuilder.AppendFormat("&error={0}", this.recaptchaResponse.ErrorCode);
            }

            return urlBuilder.ToString();
        }

6
задан TygerKrash 7 July 2014 в 14:56
поделиться

2 ответа

Если вы посмотрите http://recaptcha.net/apidocs/captcha/client.html , там написано:

«Чтобы избежать предупреждений браузера , если вы используйте reCAPTCHA на сайте SSL, вам следует заменить http://api.recaptcha.net на https: // api- secure.recaptcha.net . "

Очевидно, recaptcha поддерживает отправку HTTPS. Есть ли у элемента управления ASP.NET какие-либо свойства, которые можно настроить для исходящего URL-адреса? В худшем случае вам может понадобиться использовать Reflector , чтобы изучить код и посмотреть, как он построен.

12
ответ дан 8 December 2019 в 13:45
поделиться

Библиотека .NET не требует настройки для работы в среде HTTPS. Он будет производным от текущего HttpContext , если запрос сделан по протоколу HTTPS.

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

Обновление :

Кажется, я неправильно понял вопрос. Боюсь, что нет конечной точки HTTPS для проверки reCAPTCHA (между вашим и их сервером).

5
ответ дан 8 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: