前言
为了增强网站的安全性,我们在网站的登录模块或信息输入模块加入了验证码功能,那么在C# .Net中如何实现验证码呢?本文借助KgCaptcha实现了这个功能。
前端代码
<scriptsrc="https://cdn.kgcaptcha.com/captcha.js?appid=94dATYQa"></script><script>kg.captcha({ // 绑定元素,验证框显示区域bind: "#captchaBox", // 验证成功事务处理success: function(e) { console.log(e); }, // 验证失败事务处理failure: function(e) { console.log(e); }, // 点击刷新按钮时触发refresh: function(e) { console.log(e); } }); </script><divid="captchaBox">载入中</div>
C#代码
usingSystem; usingKgCaptchaSDK; publicpartialclass_Default : System.Web.UI.Page{ protectedvoidPage_Load(objectsender, EventArgse) { // 后端处理stringhtml, appId, appSecret, Token; if (Request.Form.ToString().Length>0){ // 有数据处理// 填写你的 AppId,在应用管理中获取appId="94dATYQa"; // 填写你的 AppSecret,在应用管理中获取appSecret="6u2BhEgORjQPkO1c69mpg2z5lLTLHf6a"; varrequest=newkgCaptcha(appId, appSecret); // 前端验证成功后颁发的 token,有效期两分钟request.token=Request.Form["kgCaptchaToken"]; // 填写应用服务域名,在应用管理中获取request.appCdn="https://cdn.kgcaptcha.com"; // 当安全策略中的防控等级为3时必须填写,一般情况下可以忽略// 可以填写用户输入的登录帐号(如:Request.Form["username"]),可拦截同一帐号多次尝试等行为request.userId="kgCaptchaDemo"; // 请求超时时间,秒request.connectTimeout=5; // 发送验证请求varrequestResult=request.sendRequest(); if (requestResult.code==0) { // 验签成功逻辑处理 ***// 这里做验证通过后的数据处理// 如登录/注册场景,这里通常查询数据库、校验密码、进行登录或注册等动作处理// 如短信场景,这里可以开始向用户发送短信等动作处理// ...html="<script>alert(´验证通过´);history.back();</script>"; } else { // 验签失败逻辑处理html="<script>alert(\""+requestResult.msg+" - "+requestResult.code+"\");history.back();</script>"; } // 输出结果Response.Write(html); } Response.Redirect("index.html"); } }
效果展示
相关链接
官方地址:
SDK下载:
效果演示: