【发布时间】:2019-03-14 10:28:27
【问题描述】:
我有一个名为AccountController 的控制器,带有recaptcha 和这样的代码:
[HttpPost]
public ActionResult FormSubmit()
{
var response = Request["g-recaptcha-response"];
string secretKey = "6Lf_NnQUAAA......"; //Added my secret key that genereted on my re-captcha
var client = new WebClient();
var result = client.DownloadString(string.Format("https://google.com/recaptcha/api/siteverify?secret={0}&response{1}", secretKey, response));
var obj = JObject.Parse(result);
var status = (bool)obj.SelectToken("success");
ViewBag.Message = status ? "successs" : "failed";
return View();
}
另外,我有 LogIn.cshtml 视图,代码如下:
<div>
@using (Html.BeginForm("FormSubmit", "Home", FormMethod.Post))
{
<div class="g-recaptcha" data-sitekey="6Lf_NnQUAAA..."></div> //ADDED MY SITE KEY
<input type="submit" name="commit" value="Join IoT Lab!">
}
</div>
<span style="display:inline-block; font-size:20px;margin:20px 0;padding:20px;border:1px solid #D3D3D3">
@ViewBag.Message
</span>
<p>
By clicking "Join IoT Lab", you agree to our <br />
<a href="@Url.Action("PrivacyRulesAndGuidelines", "IOTLabProject")">Terms and conditions</a> and <a href="@Url.Action("PrivacyRulesAndGuidelines", "IOTLabProject")">Privacy policy</a>
</p>
<script src='https://www.google.com/recaptcha/api.js' type="text/javascript"></script>
目前,验证码使用图像进行验证,所以如果我检查正确的图像验证码将是有效的,但如果我在没有验证码的情况下单击提交(“加入物联网实验室”),它仍然会重定向我......
那么,如何在验证验证码后启用Join IoT Lab!(提交)按钮?我的意思是,如何将 recaptcha 设置为必填字段?
我想我应该使用ViewBag 之类的东西,但是如何使用呢?
【问题讨论】:
-
@HereticMonkey 不是。我没有使用 javascript 或 jQuery。
标签: asp.net button asp.net-mvc-5 recaptcha captcha