MVC验证码的编写
主要是相互学习一下mvc,希望各位大神指导
/// <summary>
/// 生成随机数字
/// </summary>
/// <returns>随机数字</returns>
public string GetCode(int len = )
{
string strCode = string.Empty;
char code;
int num;
Random rnd = new Random();
for (int i = ; i < len; i++)
{
num = rnd.Next();
if (num % == )
{
code = (char)('' + (char)(num % ));
}
else
{
//code = (char)('0' + (char)(num % 10));
code = (char)('A' + (char)(num % ));
}
strCode += code.ToString();
}
return strCode;
}
生成随机数
/// <summary>
/// 生成验证码(保存验证码到图片)
/// </summary>
/// <returns>二进制</returns>
public byte[] ProcessRequestImage(string validateCode)
{ HttpContext context = HttpContext.Current;
using (Bitmap bmp = new Bitmap(validateCode.Length * + , ))
{
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
Random rnd = new Random();
for (int i = ; i < ; i++)
{
int x1 = rnd.Next(bmp.Width);
int y1 = rnd.Next(bmp.Height);
int x2 = rnd.Next(bmp.Width);
int y2 = rnd.Next(bmp.Height);
g.DrawLine(new Pen(Color.FromArgb(rnd.Next(), rnd.Next(), rnd.Next())), x1, y1, x2, y2);
}
g.DrawRectangle(new Pen(Color.FromArgb(rnd.Next(), rnd.Next(), rnd.Next())), new Rectangle(, , bmp.Width - , bmp.Height - ));
for (int i = ; i < ; i++)
{
bmp.SetPixel(rnd.Next(bmp.Width), rnd.Next(bmp.Height), Color.FromArgb(rnd.Next(), rnd.Next(), rnd.Next()));
}
for (int i = ; i < validateCode.Length; i++)
{
FontFamily[] familys = FontFamily.Families;
FontFamily family = familys[rnd.Next(familys.Length)];
g.DrawString(validateCode[i].ToString(), new Font(family, , FontStyle.Bold), new SolidBrush(Color.FromArgb(rnd.Next(), rnd.Next(), rnd.Next())), new PointF( + i * , ));
} //保存图片数据
MemoryStream stream = new MemoryStream();
bmp.Save(stream, ImageFormat.Jpeg); // 输出图片流
return stream.ToArray();
}
}
生成验证码图片
/// <summary>
/// 验证码
/// </summary>
/// <returns></returns>
public ActionResult VerifyCode()
{
h.Base.Public.SecurityCode seCode = new h.Base.Public.SecurityCode();
var code = seCode.GetCode();
Session["code"] = code;
var bytes = seCode.ProcessRequestImage(code);
return File(bytes, "image/jpeg");
}
控制器代码
<div class="pdiv">
<input type="image" id="valiCode" src="/Based/VerifyCode" />
</div> <script>
(function () {
//刷新验证码
var codeUrl = "/Based/VerifyCode";
$(valiCode).on("click", function () {
this.src = codeUrl + "?time=" + (new Date()).getTime();
}); })(jQuery)
</script>
view视图代码
这段代码我测试过了。。 是可以通过的。
MVC验证码的编写的更多相关文章
- ASP.NET MVC验证码演示(Ver2)
前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...
- MVC 验证码实现( 简易版)
现在网站上越来越多的验证码,使用场景也是越来越多,登陆.注册.上传.下载...等等地方,都有可能大量使用到验证码,那么制作验证码到底有多简单呢?我们一起来看下最简易版的验证码实现过程- 验证码的基本步 ...
- asp.net验证码的编写
很多时候我们在登录什么网站的时候,除了需要什么用户名和密码之外,有的还需要验证码那么在asp.net中这个验证码如何编写和设计,今天我就来给大家说一下: 首先创建一个页面名字随便起一个,我们这里叫做C ...
- .NET MVC 验证码
.NET MVC 验证码
- 2015年3月26日 - Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用。
2015年3月26日 - Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用.
- MVC模式网站编写经验总结
单个网站使用MVC架构模式经验总结,包含具体网站包分类.包内类的编写.注意事项等方面.本人认为,按照如下包分类及编写方法,已经满足一个简单普通网站(主要针对java)的编写需求. MVC主要层级 数据 ...
- ASP.NET MVC验证码演示
我们在网站登录或理一个评论时,可以放置一个验证码(Captcha),可以为系统免去那些恶意刷新等功能. 今次Insus.NET在asp.net mvc应用程序实现与演示验证码的产生以及应用等 . 前天 ...
- ASP.NET mvc 验证码 (转)
ASP.net 验证码(C#) MVC http://blog.163.com/xu_shuhao/blog/static/5257748720101022697309/ 网站添加验证码,主要为防止机 ...
- mvc验证码图片生成
/// <summary> ///生成验证码 /// </summary> public class VerifyCode { /// <summary> /// ...
随机推荐
- python设计模式之装饰器模式
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装饰 ...
- SQL主、外键,子查询
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- iOS8之后CoreLocation定位的使用
在Info.plist文件中添加如下配置: //始终允许访问位置信息 (1)NSLocationAlwaysUsageDescription //使用应用程序期间允许访问位置数据 (2)NSLocat ...
- 读取pdf文件 .选择了itextsharp 库
此库还是比较成熟.看博客园很多文章都介绍了此库 用法 如果项目用到读取pdf. 我这只是提供个思路.或者提供个方法.用itextsharp 能方便实现 StringBuilder text = ne ...
- ISO7816协议的块传输协议
1.块传输协议中的前三个字节是强制必须有的 NAD节点地址: 当终端支持多个卡槽,终端和这些卡槽以总线的方式通讯时,该字节有用,其他情况下,默认为0 bit1-3:定义了源地址 bit5-7:定义了目 ...
- (转)C++ 编程规范
转载地址:http://www.cnblogs.com/len3d/archive/2008/02/01/1061902.html C/C++编码规范 今天人们越来越明白软件设计更多地是一种工程,而不 ...
- 【转】Android源代码查看途径
原文网址:http://www.it165.net/pro/html/201501/32967.html 作为一个android coder,多阅读android源码对提高android开发水平是很有 ...
- (转载)PHP删除数组中的特定元素的代码
(转载)http://www.jb51.net/article/30689.htm 我们知道,PHP没有提供专门删除一个特定数组元素的方法.但是可以通过unset()函数来完成这种要求比如下面的程序: ...
- <转>libjpeg解码内存中的jpeg数据
转自http://my.unix-center.net/~Simon_fu/?p=565 熟悉libjpeg的朋友都知道libjpeg是一个开源的库.Linux和Android都是用libjpeg来 ...
- cf700A As Fast As Possible
On vacations n pupils decided to go on excursion and gather all together. They need to overcome the ...