【问题标题】:reCAPTCHA needs to be configured with a public & private keyreCAPTCHA 需要配置公钥和私钥
【发布时间】:2013-07-24 13:40:29
【问题描述】:

我在我的 MVC 应用程序中使用 ReCaptcha。我能够构建此应用程序,但收到错误“reCAPTCHA 需要配置公钥和私钥” 我也在 Web.Config 文件中声明了私钥和公钥。但是同样的错误。有没有办法在应用程序加载时生成私钥和公钥,这样任何人都无法篡改它。

【问题讨论】:

  • 我不熟悉 reCAPTCHA,但您提到的密钥不是用于验证服务的普通旧 API 密钥吗? (出于速率控制等目的)也就是说,reCAPTCHA 向您的应用程序发出的一个 - 您建议如何生成它?
  • 什么时候出现这个错误?是一启动应用就出现,还是显示在关注页面上?
  • 是的,我在 View 中添加了 @Html.Raw(Html.GenerateCaptcha())单击它时称为注册它会引发错误...
  • 自己解决了这个问题...

标签: asp.net asp.net-mvc recaptcha


【解决方案1】:

您可以在https://www.google.com/recaptcha/admin/create 上创建@millimoose 所指的密钥

在此处记录 https://developers.google.com/recaptcha/intro

【讨论】:

    【解决方案2】:

    我已经在我们的 MVC4 应用程序中使用 reCAPTCHA 和 PoliteCaptcha 有一段时间了,这是我当前的工作实现:

    Web.Config

    <appSettings>
         <add key="reCAPTCHA::PublicKey" value="abcdefghijklmnopqrstuvwxyz" />
         <add key="reCAPTCHA::PrivateKey" value="abcdefghijklmnopqrstuvwxyz" />  
    </appSettings>
    

    RegisterUser.cshtml

    确保页面顶部有 using :

    @using PoliteCaptcha
    

    根据您触发验证码时显示的位置,这将呈现 HTML:

    @Html.SpamPreventionFields()
    

    然后在此页面的@Scripts 部分中,我使用扩展助手,但您可以直接引用脚本:

    @section Scripts
    {    
       @Html.SpamPreventionScript()
       @Scripts.Render("~/bundles/jqueryval")  
    }
    

    RegisterUserController.cs

    然后注释当您想验证它是否是真实用户时调用的方法:

    [HttpPost, ValidateSpamPrevention]
    public ActionResult RegisterUser(RegisterUserModel request)
    {
        // ...
    }
    

    如果页面交互触发了验证码,那么Model.IsValid会在这里返回false,然后会显示@Html.SpamPreventionFields生成的HTML。

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 2020-07-05
      • 1970-01-01
      • 2013-07-09
      • 2016-09-20
      • 2011-07-19
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      相关资源
      最近更新 更多