MVC图片验证码
C#类库:
public class YZM
{
public string YZMcode = String.Empty; public byte[] load()
{ Bitmap bit = new Bitmap(, );//画布大小
Graphics g = Graphics.FromImage(bit);//创建绘制对象,告诉它往哪张图片上绘制
try { Random r = new Random();
Color color1 = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));
g.FillRectangle(new SolidBrush(color1), , , , );//画布颜色随机
for (int i = ; i < ; i++)//随机画干扰线
{
Color color3 = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));
Pen pp = new Pen(new SolidBrush(color3), r.Next(, ));
g.DrawLine(pp, r.Next(, ), r.Next(, ), r.Next(, ), r.Next(, ));
} string yan = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";//设置随机的验证码,从里面抽取
int wei = ;
for (int i = ; i < ; i++)//取四位验证码,颜色随机
{
string m = yan.Substring(r.Next(, yan.Length), );
YZMcode += m;
Color color2 = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));
int w = r.Next(, );
Font f = new Font("黑体", w);
SolidBrush b = new SolidBrush(color2); g.DrawString(m, f, b, wei, r.Next(, ));
wei += w;
} for (int i = ; i < ; i++)
{
Color color3 = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));
Pen pp = new Pen(new SolidBrush(color3), r.Next(, ));
int a = r.Next(, );
int b = r.Next(, );
g.DrawLine(pp, a, b, (a + ), (b + ));
} System.IO.MemoryStream ms = new System.IO.MemoryStream();
bit.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
finally {
g.Dispose();//释放绘图对象
bit.Dispose();//释放图像对象
} } }
action:
public FileContentResult yIndex()
{
YZM y = new YZM();
byte[] bytes = y.load();
Session["yzm"] = y.YZMcode;
return File(bytes, @"image/jpeg");
}
HTML:
<img alt="验证码图片" id="img" src="@Url.Action("yIndex","Home")" style="width: 100px; height: 38px; border: 1px solid #ddd; margin-bottom: -15px;" />
<a href="#" onclick="fun()" style="color: #1b66c7">换一张</a>
js:
<script>
var i = 0;
function fun()
{
$("#img")[0].src = $("#img")[0].src + "?" +i;
i++;
}
</script>
MVC图片验证码的更多相关文章
- ASP.NET MVC 模块与组件(二)——定制图片验证码
本着简洁直接,我们就直奔主题吧! 下面是一个生成数字和字母随机组合的验证码类源代码: using System; using System.Drawing; using System.Drawing ...
- MVC伪一个12306图片验证码
本文的来由主要是满足自己的好奇心,而不是证明什么东西,如果涉及到什么官方性的事情,麻烦通知我谢谢:本篇将要和大家分享的是一个看起来通12306图片验证码相似的效果,这篇应该是今年农历最后一篇分享文章了 ...
- MVC中登录页图片验证码总结
直接上代码了 using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imagi ...
- 基于spring mvc的图片验证码实现
本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...
- MVC之图片验证码
MVC之图片验证码 controller中的action方法public ActionResult GetValidateCode() { ValidateCode vCode = new Valid ...
- 在mvc中实现图片验证码的刷新
首先,在项目模型(Model)层中建立一个生成图片验证码的类ValidationCodeHelper,代码如下: public class ValidationCodeHelper { //用户存取验 ...
- Asp.net mvc生成验证码
1.生成验证码类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- MVC中验证码
MVC中验证码的实现(经常用,记录备用) 一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...
- MVC中验证码的实现(经常用,记录备用)
一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...
随机推荐
- Nginx反向代理配置可跨域
由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 XMLHttpRequest cannot load ...
- UItableVIew初探
UItableView style/* //普通 UITableViewStylePlain, //分组 UITableViewStyleGrouped*/ //表格视图 UITable ...
- Mac MySQL 转移 datadir
mysql默认的datadir在启动盘上面,有时database太大,于是决定将datadir迁到存储盘中 Step 1 将原datadir迁到存储盘 mv /usr/local/var/mysql ...
- Hibernate 随记(数据库映射流程)
ORM:Object/Relationship Mapping 对象/关系映射 实现流程: 1.项目中导入Hibernate相关类包并创建配置文件.Hibernate.cfg.xml(可 ...
- gulp监听文件变化,并拷贝到指定目录
暂时不支持目录修改.创建.删除var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var l ...
- JDBC修改表数据
修改数据时用到update语句,使用这个语句时也要有条件的,指定修改某一行的数据,没有条件判断,则修改全部. package qddx.JDBC; import java.sql.*; public ...
- React 学习笔记(学习地址汇总)
好的博文地址:http://www.ruanyifeng.com/blog/2015/03/react.html 官网学习地址:http://facebook.github.io/react/docs ...
- Beta版本测试报告
爬虫测试: 由于爬虫是整个系统的数据来源,十分的重要,但是由于引用了jar包并且运行复杂,这里主要做功能性测试,通过增加seed,运行爬虫,可以在后台控制台看到日志的不断刷新以及数据库条目的不断增加, ...
- HDU1434(终于用优先队列a了一题。。。了解度+1)
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #inclu ...
- sql中的跨库查询
在sql查询时,需要关联2个服务器上的不同数据库,只需要在所需查询的表名前加上服务器地址即可. 例如:在 192.168.0.15,8020的db110库 和 192.168.0.150,8082的d ...