You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决MVC中出现的‘ERROR for site owner: Invalid site key’错误?

解决Google reCAPTCHA "Invalid site key" 错误

看起来你遇到的问题主要来自两个核心点:重复渲染验证码控件,以及可能的密钥配置不匹配,咱们一步步来排查修复:

1. 移除重复的reCAPTCHA渲染代码

你同时用了两种方式添加reCAPTCHA:

  • reCAPTCHA.MVC提供的@Html.Recaptcha()辅助方法
  • 手动编写的<div class="g-recaptcha" data-sitekey="xxx"></div>

这两种方式二选一即可,同时存在会导致控件冲突——@Html.Recaptcha()已经会自动渲染对应的验证码控件,不需要手动添加div。建议保留辅助方法的实现,删除手动编写的div代码。

修正后的表单代码示例:

@using reCAPTCHA.MVC 
<html> 
<head> 
    <script src='https://www.google.com/recaptcha/api.js'></script> 
</head> 
<body> 
    @using (Html.BeginForm()) { 
        @Html.Recaptcha() 
        @Html.ValidationMessage("ReCaptcha") 
        <input type="submit" value="Register" /> 
    } 
</body> 
</html>

2. 确保web.config中的密钥配置准确

reCAPTCHA.MVC依赖web.config的<appSettings>节点配置密钥,要注意两个关键点:

  • 配置项的键名必须是ReCaptchaPublicKey(对应公钥)和ReCaptchaPrivateKey(对应私钥)
  • 密钥必须是Google控制台生成的reCAPTCHA v2类型密钥(不能用v3密钥,二者不兼容)

配置示例:

<appSettings>
  <add key="ReCaptchaPublicKey" value="你的site key(公钥)" />
  <add key="ReCaptchaPrivateKey" value="你的private key(私钥)" />
</appSettings>

3. 验证密钥的域名权限

在Google reCAPTCHA控制台创建密钥时,必须把当前项目的域名加入允许列表:

  • 本地测试要添加localhost
  • 线上环境要添加实际的业务域名
    如果域名不在允许列表里,即使密钥正确也会触发"Invalid site key"错误。

4. 清除缓存后测试

浏览器缓存可能残留旧的密钥配置,建议清除浏览器缓存或者用无痕模式重新加载页面,验证错误是否消失。

按照上面的步骤调整后,应该就能解决当前的验证码密钥错误问题了。

内容的提问来源于stack exchange,提问作者User9895

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:54:15