最近公司网站的会员注册页遭遇恶意攻击,为防止恶意数据的提交决定采用google的Recaptcha插件(免费)
介绍地址:http://www.google.com/recaptcha
我们公司网站是采用的mvc3.0框架搭建的,但是google的提供的案例并没有关于.net mvc的相关资料,当时就头大了.经过向大神请教终于完成了,现在分享给大家.希望能有所帮助.
转载请支持:武潭门户
1.需要在申请一个密钥
2.下载所需dll文件,下载地址:http://code.google.com/p/recaptcha/downloads/list?q=label:aspnetlib-Latest
3.引用dll文件到项目
4.在网站web.config 添加节点(注意验证码应用网址和申请网站必须一致,否则不会显示.本地vs调试不会出现这样的问题)
<appSettings>
<!--google验证码密钥-->
<add key="ReCaptchaPrivateKey" value="xxxxxxxx"/>
<add key="ReCaptchaPublicKey" value="xxxxxxxxx"/>
<appSettings>
5.视图页调用需要先导入命名空间@using Recaptcha;如果很多页面使用也可以放入web.config中
调用代码:
@Html.Raw(Html.GenerateCaptcha("captchaValid", "clean"))
GenerateCaptcha方法有2参数第一个为id,第二个为主题(官方有提供4个主题,当然也可以自定义样式.)
自定义样式请参考:https://developers.google.com/recaptcha/docs/customization?hl=zh-CN
6.后台判断验证码是否输入正确.(同样需要先导入命名空间using Recaptcha)
[HttpPost]
[RecaptchaControlMvc.CaptchaValidator]
public ActionResult xxx(FormCollection form, Boolean captchaValid)
{
if(captchaValid)
{
//处理过程
}
else
{
//验证码错误
}
}
输出结果如下:
是不是很容易? 快给你的网站加上保护吧.
转载请支持: 武潭门户