首先,我是mvc和c#的新手,我可能犯了简单的错误,但到目前为止我还没有找到解决方案。这是问题所在。我创建了一个联系表单,我想添加recaptcha。 我生成了google的recaptcha key-s: google keys 我已将recaptcha标签添加到我想要的视图中,其中由谷歌
指定<div class="g-recaptcha" data-sitekey="MY PUBLIC KEY"></div>
@Html.ValidationMessage("CapchaError", new { @style = "color:red" });
<script src='https://www.google.com/recaptcha/api.js' type="text/javascript"></script>
这是我如何在我的控制器中检查验证
//reCaptcha
var response = Request["g-recaptcha-response"];
string secretKey = "MY SECRET KEY";
var client = new WebClient();
var result = client.DownloadString(string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secretKey, response));
var obj = JObject.Parse(result);
var status = (bool)obj.SelectToken("success");
if (!status)
{
ModelState.AddModelError("CapchaError", "***");
}
问题是验证在localhost中完全正常,但我无法在我的域(网站)上运行它。它打印我的&#34; CaptchaError&#34;,*** 我试图为域和localhost(仅适用于localhost)生成只有域(没有工作)的新密钥。 我确信我犯了愚蠢的错误,但我无法弄清楚我做错了什么,所以请帮忙。提前谢谢。