reCAPTCHA是谷歌推出的验证码服务。用于识别当前访问者是人或者是机器,可以有效的防止机器“暴力”提交数据,或者是“暴力”破解你的密码。

官方网站

https://www.google.com/recaptcha

启用reCAPTCHA

在ZKEACMS中,reCAPTCHA功能默认是关闭的,需要主动开启。开启的方式很简单,配置信息在appsettings.jsonreCaptcha节点,将Enable设置为true即可。

开启后就可以在页面的右下角看到reCAPTCHA的图标:

申请reCAPTCHA的Key

在使用reCAPTCHA之前,您应该先申请一个reCAPTCHA的Key,ZKEACMS中使用的是v3版本的reCAPTCHA,v3版本的reCAPTCHA,可以在不影响用户体验的情况下识别机器人。您可以在以下链接申请一个Key:

https://g.co/recaptcha/v3

将申请得到的Site KeySecret key填入appsettings.json即可。

在程序中使用reCAPTCHA

reCAPTCHA的使用也很简单,首先在你的表单处添加使用@Html.reCaptcha()

然后就可以使用VerifyRequest特性来验证用户的请求了:

当用户请求验证不过时,会在ModelState中添加一个reCAPTCHA的验证失败信息,所以您应当使用ModelState.IsValid来判定当前的请求是否通过验证:

[HttpPost, ValidateAntiForgeryToken, VerifyRequest]
public async Task<ActionResult> Login(string userName, string password, string ReturnUrl)
{
    if (ModelState.IsValid)
    {
        
    }

    return View();
}