下面是一个完整的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. Kotlin 控制台交互式操作

    kotlin 可以使用和控制台进行交互式操作. 还是蛮有意思. 使用Kotlin的交互式操作首先必须要正确的安装JDK和配置JDK的环境. 可以参考这篇文长 安装完成之后就要下载一个Kotlin的交互 ...

  2. Android6的Logger日志系统

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android2.x中Logger日志系统采用了字符设备驱动来支持,到了Android6.0已经找不到kernel/goldfish/driver ...

  3. AngularJs 指令 directive中link,controller 的区别

    其实严格来讲,link和controller是完全不同的概念,这里讲区别有点牵强. angular指令中,带有link和controller两个函数,很多人在写指令的时候不知道是写在link里 还是c ...

  4. linux 远程连接ssh提示 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决

    Linux ssh 远程登录到其他机器上时,有时会出现登不进去,并弹出如下类似提示的情况: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  5. 《图解HTTP》阅读笔记-第五章-web服务器

      第五章.与HTTP协助的web服务器单台虚拟主机实现多个域名可以用单台物理主机运行多台虚拟主机,这些虚拟主机的IP相同,而虚拟主机有可以寄存多个不同主机名和域名的web网站,所以要保证发送HTTP ...

  6. 2016"百度之星" - 资格赛(Astar Round1)D

    Problem Description 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的 ...

  7. A. Cinema Line

    A. Cinema Line time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  8. jQuery 全屏滚动插件 fullPage.js 参数说明

    fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 ...

  9. 利用Content-disposition实现无刷新下载图片文件

    今天在使用 tinypng.com 这个在线压缩图片的网站时,对其处理完图片后,可以无刷新下载图片感到好奇,于是了解了一下相关实现.无刷新下载可以利用MIME type或者设置Content-disp ...

  10. java——快排、冒泡、希尔、归并

    直接贴代码 快排: public class Test { private static void sort(int[] nums){ if(nums == null || nums.length = ...