C#实现图形验证码

前言

C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。突发奇想,动手开发一个C#滑动拼图验证码,下面是我开发过程的记录。

5

准备工作

本文使用IIS搭建环境,同时确保项目运行正常。

3

目录结构

4

核心代码

  • noramal.html
1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>凯格行为验证码 - Net C# demo</title> 6<link rel="stylesheet" href="./style/demo.css" /> 7<!-- 8将以下域名替换成你的“应用服务器域名” 9将以下 appid 替换成你的 AppID 10服务器域名和appid在你的应用管理中获取 11示例:<script src="captcha.js?appid=xxx"></script> 12--> 13<script src="captcha.js?appid=appId"></script> 14<script> 15kg.captcha({ 16 // 绑定显示区域 17 bind: "#captchaBox", 18 19 // 验证成功事务处理 20 success: function (e) { 21 console.log(e); 22 // 将验证成功后的 token 通过隐藏域传递到后端 23 kg.$("#kgCaptchaToken").value = e["token"]; 24 }, 25 26 // 验证失败事务处理 27 failure: function (e) { 28 console.log(e); 29 }, 30 31 // 点击刷新按钮时触发 32 refresh: function (e) { 33 console.log(e); 34 } 35}); 36// 检查表单提交 37function check() { 38 if (kg.$("#kgCaptchaToken").value == "") { 39 alert("请完成图形验证后提交") 40 return false; 41 } else { 42 return true; 43 } 44} 45</script> 46</head> 47<body> 48 <form action="demo.aspx?cty=1" method="post" id="form" onsubmit="return check();"> 49 <!-- 将验证成功后的 token 通过隐藏域传递到后端 --> 50 <input type="hidden" name="kgCaptchaToken" id="kgCaptchaToken" value="" /> 51 <div class="inputForm"> 52 <input type="text" name="username" placeholder=" 例:填写登录帐号" /> 53 <br/> 54 <input type="password" name="password" placeholder=" 例:填写登录密码" /> 55 </div> 56 <!-- 绑定显示区域 --> 57 <div id="captchaBox"></div> 58 <input type="submit" value="提 交" class="btn" /> 59 </form> 60</body> 61</html>
  • demo.aspx.cs
1using System; 2using KgCaptchaSDK; 3 4public partial class _Default : System.Web.UI.Page{ 5 protected void Page_Load(object sender, EventArgs e) { 6 7 // 后端处理 8 string html, appId, appSecret, Token; 9 if (Request.Form.ToString().Length > 0){ // 有数据处理 10 11 string cty = Request.QueryString["cty"]; 12 // 设置 AppId 及 AppSecret,在应用管理中获取 13 if (cty == "1"){ 14 appId = "appId"; 15 appSecret = "appSecret"; 16 } 17 // 填写你的 AppId 和 AppSecret,在应用管理中获取 18 var request = new kgCaptcha(appId, appSecret); 19 20 // 前端验证成功后颁发的 token,有效期为两分钟 21 request.token = Request.Form["kgCaptchaToken"]; 22 23 // 填写应用服务域名,在应用管理中获取 24 request.appCdn = "https://cdn.kgcaptcha.com"; 25 26 // 当安全策略中的防控等级为3时必须填写,一般情况下可以忽略 27 // 可以填写用户输入的登录帐号(如:$_POST["username"]),可拦截同一帐号多次尝试等行为 28 request.userId = "kgCaptchaDemo"; 29 30 // 请求超时时间,秒 31 request.connectTimeout = 5; 32 33 // 发送验证请求 34 var requestResult = request.sendRequest(); 35 36 if (requestResult.code == 0) { 37 // 验签成功逻辑处理 *** 38 39 // 这里做验证通过后的数据处理 40 // 如登录/注册场景,这里通常查询数据库、校验密码、进行登录或注册等动作处理 41 // 如短信场景,这里可以开始向用户发送短信等动作处理 42 // ... 43 44 html = "<script>alert('验证通过');history.back();</script>"; 45 } else { 46 // 验签失败逻辑处理 47 html = "<script>alert(\"" + requestResult.msg + " - " + requestResult.code + "\");history.back();</script>"; 48 } 49 50 // 输出结果 51 Response.Write(html); 52 } else { 53 Response.Redirect("index.html"); 54 } 55 } 56}

最后

SDK开源地址:https://github.com/KgCaptcha,顺便做了一个演示:https://www.kgcaptcha.com/demo/

点赞
收藏

评论区

加载中...

相关推荐

Vue.js 滑动拼图验证码实现笔记

关于验证码的使用场景还是非常多的,很多网站上的验证码可谓是五花八门,下面是我使用Vue.js实现滑动拼图验证码做的一个笔记。

一个Node.js图形验证码的生成

本文是我在一次基于Node.js环境下开发滑动拼图验证码,下面是我对这次项目的总结。

C#滑动拼图验证码实现笔记

C是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由Ecma和ISO核准认可的。突发奇想,动手开发一个C滑动拼图验证码,下面是我开发过程的记录。

Vue.js 实现行为验证码

关于验证码的使用场景还是非常多的,很多网站上的验证码可谓是五花八门,下面是我使用Vue.js实现滑动拼图验证码做的一个笔记。

C++概述

概述C是静态,可编译,通用,大小写敏感,格式自由的编程语言,它支持程序化,面向对象的,和泛型编程方式。C被看作是中间层语言,因为它同时包含了低级语言和高级语言的特性。C是于1979年在新泽西的茉莉山丘的贝尔实验室由BjarneStroustrup开发的,它是C语言的加强版,最开始它被称作“CwithClasses”,但是

TypeScript 教程

TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C的首席架构师,已工作于TypeScript的开发。\1\TypeScript扩展了JavaScript的句法,所以任何现有的JavaScript程序可以不