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> /// ...
随机推荐
- 利用Php ssh2扩展实现svn自动提交到测试服务器
1.安装ssh2扩展 (1)window . 下载 php extension ssh2 下载地址 http://windows.php.net/downloads/pecl/releases/ssh ...
- Flask学习记录之使用Werkzeug散列密码
数据库中直接存放明文密码是很危险的,Werkzeug库中的security能够方便的实现散列密码的计算 security库中 generate_password_hash(password,metho ...
- IOS开发----委托机制
委托模式从GoF装饰模式.适配器模式和模板方法等演变过来,几乎每一个应用都会或多或少的用到委托模式. 在古希腊有一个哲学家,他毕生只做三件事情:“睡觉”.“吃饭”.和“工作”.为了更好的生活,提高工作 ...
- python使用PIL压缩图片
import Image import os import os.path import sys path = sys.argv[1] small_path = (path[:-1] if path[ ...
- 水仙花 AC 杭电
水仙花数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- Ant快速入门(二)-----使用Ant工具
使用Ant非常简单,当正确安装Ant后,只要输入ant或ant.bat即可. 如果运行ant命令时没有指定任何参数,Ant会在当前目录下搜索build.xml文件.如果找到了就以该文件作为生成文件,并 ...
- poj 3020Antenna Placement
http://poj.org/problem?id=3020 #include<cstdio> #include<cstring> #include<algorithm& ...
- 主席树套树状数组 动态区间第k小
先打上代码以后更新解释 #include <cstdio> #include <iostream> #include <algorithm> #include &l ...
- sqlserver 时间格式化
SELECT CONVERT(varchar(), GETDATE(), ) :12AM SELECT CONVERT(varchar(), GETDATE(), ) // SELECT CONVER ...
- HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)
Problem Description As is known to all, Sempr(Liangjing Wang) had solved more than 1400 problems on ...