веб-сайт reCaptcha и SSL - PullRequest
       6

веб-сайт reCaptcha и SSL

4 голосов
/ 06 мая 2011

Я использую reCaptcha на моей веб-странице под asp.net mvc. Этот веб-сайт имеет сертификат SSL, и у меня есть и проблема с reCaptcha. Это мой код на View:

<script type="text/javascript" src="https://api-secure.recaptcha.net/challenge?k=***Public key****"> </script>
<noscript>
<iframe src="https://api-secure.recaptcha.net/noscript?k=***Public key****" height="300" width="500" frameborder="0"></iframe><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
</noscript>

и этот код у меня на AccountController:

private bool PerformRecaptcha()
{
    var validator = new RecaptchaValidator
    {
        PrivateKey = "**Private Key***", 
        RemoteIP = Request.UserHostAddress,
        Response = Request.Form["recaptcha_response_field"],
        Challenge = Request.Form["recaptcha_challenge_field"]

    };

    try
    {
        var validationResult = validator.Validate();

        if (validationResult.ErrorMessage == "incorrect-captcha-sol")
            ModelState.AddModelError("ReCaptcha", string.Format("Please retry the ReCaptcha portion again."));

        return validationResult.IsValid;
    }
    catch (Exception e)
    {
        ModelState.AddModelError("ReCaptcha", "an error occured with ReCaptcha please consult documentation.");
        return false;
    }
}

и моя версия библиотеки - 1.0.5.0.

Когда я загружаю форму регистрации, у меня появляется это предупреждение в Opera:

Сертификат сервера правил соответствует имени сервера. Хотите принять?

Если я принимаю этот сертификат, отображается код reCaptcha, но если нет, я не вижу код reCaptcha.

Можете ли вы помочь мне с этим? Если вам нужна дополнительная информация о моем коде, не стесняйтесь спрашивать меня.

Привет.

Ответы [ 2 ]

10 голосов
/ 06 мая 2011

Я думаю, вам нужно изменить URL, который вы используете, чтобы включить recaptcha. У многих людей была такая же проблема в апреле. Recaptcha позволяет сроку действия сертификата для "api-secure.recaptcha.net". Если вы измените его на использование "https://www.google.com/recaptcha/api/XXX" url вместо" https://api -secure.recaptcha.net / XXX", это определенно должно решить вашу проблему.

Похоже, что на этот вопрос уже был дан ответ: проблема recaptcha https на https://api -secure.recaptcha.net / . Поскольку вы используете библиотеку .NET, я думаю, что ваш ответ - обновить версию.

2 голосов
/ 07 мая 2011

Обострение ответа Джейсона Штольца:

  • Вы уже используете последнюю версию DLL, нет необходимости обновлять
  • Вы можете / должны использовать метод RecaptchaControlMvc.GenerateCaptcha () в своем View вместо того, чтобы писать свой собственный (он будет использовать новый URL)
...