MVC中的验证码
下面是一个完整的mvc controller类
- public class CodeController : Controller
- {
- private const string CODE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//验证码字符池
- private const int COUNT = ;//验证码字符个数
- private const int WIDTH = ;//图片宽
- private const int HEIGHT = ;//图片高
- // 产生验证码
- private string GetCode()
- {
- Random r = new Random();
- int length = CODE.Length;
- StringBuilder sCode = new StringBuilder();
- for (int i = ; i < COUNT; i++)
- {
- int index = r.Next(, length);
- sCode.Append(CODE[index]);
- }
- return sCode.ToString();
- }
- /// <summary>
- /// 创建验证码图片
- /// </summary>
- /// <returns>图片文件</returns>
- public ActionResult Code()
- {
- //画背景图
- Bitmap bmp = new Bitmap(WIDTH, HEIGHT);//创建位图(宽,高)
- Graphics g = Graphics.FromImage(bmp);//创建画布
- g.FillRectangle(Brushes.LightGray, , , WIDTH, HEIGHT);//为画布填充底色(颜色,起始位置,终止位置)
- //画验证码
- string code = this.GetCode();//取出验证码
- this.Session.Add("code", code);//将当前验证码存入Session
- Font f = new Font("微软雅黑", , FontStyle.Italic);//自定义文本格式(字体,字号,字形)
- g.DrawString(code, f, Brushes.Black, , );//在画布上写入文本(内容,格式,颜色,起始位置)
- //画干扰点或线
- Random r = new Random();
- for (int i = ; i < ; i++)
- {
- Color color = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));//随机颜色
- Pen pen = new Pen(color);//创建线笔(颜色)
- int x = r.Next(, WIDTH);
- int y = r.Next(, HEIGHT);
- int xDir = r.Next();
- int yDir = r.Next();
- g.DrawLine(pen, x, y, x + xDir, y + yDir);//在画布上画短线(线笔,起始位置,终止位置)
- }
- ReturnResult result = new ReturnResult() { Result=true};
- //向客户端输出
- using (MemoryStream mStream = new MemoryStream())//创建内存流对象
- {
- bmp.Save(mStream, ImageFormat.Jpeg);//保存位图至内存流(内存流,格式)
- byte[] data = mStream.ToArray();//将内存流转换成字节数组
- return this.File(data, "application/image");//向客户端输出文件(输出内容,内容类型)
- }
- }
- }
前台中使用
- <div class="Mask_div1 clearfix">
- <p class="Mask_p1 fl">验证码:</p>
- <input type="text" class="Mask_text1 fl" id="codetxt" />
- <img src="/code/code" id="code" class="Mask_ing fl" />
- <a href="javascript:void(0)" id="change" class="Mask_a1 fl">【刷新】</a>
- </div>
- <script>
$(function(){
$("#change").click(function () {
var url = "/code/code?t=" + Date();
$("#code").attr("src", url);
});- })
</script>
MVC中的验证码的更多相关文章
- MVC中验证码
MVC中验证码的实现(经常用,记录备用) 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...
- Spring mvc 中使用 kaptcha 验证码
生成验证码的方式有很多,个人认为较为灵活方便的是Kaptcha ,他是基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可 ...
- Spring MVC 中使用 Google kaptcha 验证码
验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将 ...
- MVC中验证码的实现(经常用,记录备用)
一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...
- MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法
前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...
- 基于spring mvc的图片验证码实现
本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...
- MVC之图片验证码
MVC之图片验证码 controller中的action方法public ActionResult GetValidateCode() { ValidateCode vCode = new Valid ...
- ASP.NET MVC实现网站验证码功能
网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录.留言等提交信息到服务器端处理的页面中. 在 ...
- asp.net mvc 短信验证码
把发短信功能写成一个类包,需要引用: SmsUtillity.cs: using System; using System.Collections.Generic; using System.Linq ...
随机推荐
- UITouch
触摸事件基本都是发生在 viewController 中,首先触摸的对象是视图,而视图的类 UIView 继承了 UIRespnder 类,但是要对事件作出处理,还需要重写 UIResponder 类 ...
- 洛谷P3709 大爷的字符串题(莫队)
题目背景 在那遥远的西南有一所学校 /*被和谐部分*/ 然后去参加该省省选虐场 然后某蒟蒻不会做,所以也出了一个字符串题: 题目描述 给你一个字符串a,每次询问一段区间的贡献 贡献定义: 每次从这个区 ...
- ObjectARXWizards & AutoCAD .NET Wizards 下载地址
Autodesk Developer Network ObjectARX Wizards The ObjectARX Wizards for AutoCAD 2016 for Visual Stud ...
- webpack热更新实现
原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...
- Python脚本开发练习
打印乘法口诀表 #!/usr/bin/python #coding=utf-8 print("Hello,World....") print("你好,欢迎来到Python ...
- 「BZOJ1038」「洛谷P2600」「ZJOI2008」瞭望塔 半平面交+贪心
题目链接 BZOJ/洛谷 题目描述 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安. 我们将H村抽象为一维的轮廓.如下图所示: 我们可以用一条山的上方 ...
- Windows服务注意!
安装不成功 报错,或者安装成功 不运行 ,要把引用的dll文件 放到obj \debug文件夹下
- HashMap 1.8的源码分析一
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, ...
- redis常用数据类型与命令
注意:LPUSH 和LPOP按照栈进行操作,RPUSH和RPOP按照队列进行操作 zremrangebyscore key score开始 score结束//根据score删除 zremrangeb ...
- php 安装扩展库
liunx系统 1. /usr/local/php/bin/php-config php 配置文件位置 [ php-config是一个脚本文件,用于获取所安装的php配置的信息 ] 在编译扩展时,如果 ...