开发者

reCaptcha and SSL web site

开发者 https://www.devze.com 2023-03-03 03:00 出处:网络
I using a reCaptcha on my web page under asp.net mvc. This web site have a SSL certificated, and I having and problem with reCaptcha.

I using a reCaptcha on my web page under asp.net mvc. This web site have a SSL certificated, and I having and problem with reCaptcha. This is my code on 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>

and this code is that I have on 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;
    }
}

and 开发者_如何转开发my library version is 1.0.5.0.

When I load the register form I have this alert on Opera:

The rules server certificate matches the server name. Do you want to accept?

If I accept this certificate, displays reCaptcha code, but if not, I don't view reCaptcha Code.

Can you help me with this? If you need more information about my code, feel free to ask to me.

Regards.


I think you need to change the url you are using to include recaptcha. A number of people had the same problem in April. Recaptcha let the certificate expire for "api-secure.recaptcha.net". If you change it to use the "https://www.google.com/recaptcha/api/XXX" url instead of "https://api-secure.recaptcha.net/XXX", it should definitely fix your issue.

It looks like this one has actually been answered before: recaptcha https problem on https://api-secure.recaptcha.net/. Since you are using the .NET library, I think your answer is to upgrade your version.


Sharpening up on JasonStoltz's answer:

  • You are already using the latest DLL version, there's no need to update this
  • You can/should use RecaptchaControlMvc.GenerateCaptcha() method in your View instead of writing your own (it will use the new URL)
0

精彩评论

暂无评论...
验证码 换一张
取 消