下面是一个完整的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中的验证码的更多相关文章

  1. MVC中验证码

    MVC中验证码的实现(经常用,记录备用)   一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...

  2. Spring mvc 中使用 kaptcha 验证码

    生成验证码的方式有很多,个人认为较为灵活方便的是Kaptcha ,他是基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可 ...

  3. Spring MVC 中使用 Google kaptcha 验证码

    验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将 ...

  4. MVC中验证码的实现(经常用,记录备用)

    一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...

  5. MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  6. 基于spring mvc的图片验证码实现

    本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...

  7. MVC之图片验证码

    MVC之图片验证码 controller中的action方法public ActionResult GetValidateCode() { ValidateCode vCode = new Valid ...

  8. ASP.NET MVC实现网站验证码功能

    网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录.留言等提交信息到服务器端处理的页面中. 在 ...

  9. asp.net mvc 短信验证码

    把发短信功能写成一个类包,需要引用: SmsUtillity.cs: using System; using System.Collections.Generic; using System.Linq ...

随机推荐

  1. (Delphi)第一个Windows 32 API的窗口程序

    program Project1; uses Winapi.Windows, Winapi.messages; {$R *.res} const className = 'MyDelphiWindow ...

  2. Linux 编写安全巡检脚本

    Linux 编写安全巡检脚本 检测/etc/passwd,/etc/shadow文件是否锁定 检测/etc/login.defs配置文件中密码有效期设置是否得当 检查所有用户账户(非系统账户)中是否存 ...

  3. CI框架定义判断POST GET AJAX

    CI框架当中并没有提供,类似tp框架中IS_POST,IS_AJAX,IS_GET的方法. 所有就得我们自己造轮子了.下面就介绍一下,如何定义这些判断请求的方法.其实很简单的. 首先打开constan ...

  4. Codeforces Round #533 (Div. 2)题解

    link orz olinr AK Codeforces Round #533 (Div. 2) 中文水平和英文水平都太渣..翻译不准确见谅 T1.给定n<=1000个整数,你需要钦定一个值t, ...

  5. linux文件系统总结

    apue中:其中进程表项内部的数组又称为 进程打开文件表    另外一个角度: 从linux内核角度开: task_struct是进程描述符对应上面的进程表项,在task_struct描述符中有str ...

  6. FlowLayout(流式布局)用法

    https://blog.csdn.net/liujun13579/article/details/7771191

  7. Android 选择本地图片的demo

    https://github.com/lipanquan/SelectLocalPhoto

  8. 关于web安全需要在编程时注意的

    公司用绿盟科技的远程安全评估系统扫描了项目,发现一些安全隐患,记录下来,以规避以后编程或者发布时犯同样的错误. 1. 目标web应用表单存在口令猜测攻击 风险:登录密码易被暴力破解,暴力破解是一种常见 ...

  9. C++容器嵌套实现动态二维数组(Vector2D)

    转: http://blog.csdn.net/Touch_Dream/article/details/74931891 #include<stdio.h> #include <io ...

  10. shell脚本学习(1)

    格式: #!/bin/bash                              :标志一个shell脚本 #Filename:first_shell.sh          :文件名称 #a ...