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> /// ...
随机推荐
- Delphi Keycode
Keycode表 字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L ...
- CSS实现table td中文字的省略与显示
所谓省略就是把多余的字以“...”显示出来,而显示则是当鼠标移动到td上时,把省略的字重新显示出来.对于一个table,兼容IE与FF.Chrome的省略方式CSS写法: table{ width:2 ...
- iOS Block 用法 (1)-once again
Block简介: Block的实际行为和Function很像,最大的差别是在可以存取同一个Scope的变量值.Block实体形式如下: ^(传入参数列){行为主体}; Block实体开头是“^”,接着 ...
- 我的Jekyll博客
我在GitHub Page上托管的Jekyll博客地址:http://lastavenger.github.io/
- LINUX BASH SHELL,小小学习一下
注意点要注意的: 整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1` ...
- 【模拟】HDU 5752 Sqrt Bo
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 题目大意: 定义f(n)=⌊√n⌋,fy(n)=f(fy-1(n)),求y使得fy(n)=1. ...
- 怎样在WIN7系统下安装IIS
http://jingyan.baidu.com/article/19192ad853224ce53f570748.html
- xamarin提供在线检查.net代码是否支援xamarin,ios,android
大概是多少比你想的更多的移动.我们很高兴地宣布一个新的在线服务Xamarin NET移动扫描仪-扫描您的编译.NET代码的兼容性与Xamarin.iOSXamarin.Android是,Windows ...
- Visual studio 能否定位打开文件在项目中的位置
文件位置:http://zhidao.baidu.com/link?url=FmwuCXTR2ptnRfqr7xGGPrnoXaONDAWgvO6iP4Dn736DwL7hEZCwQqanJbE0di ...
- python模块管理
参考python的模块管理,请看如下 http://blog.sina.com.cn/s/blog_90bc5fc6010159e0.html http://hi.baidu.com/billsche ...