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> /// ...
随机推荐
- java判断网络连接是否正常
/** * 判断本机当前的网络状态是否联通 * 在这里主要用到中国天气信息,所以访问百度地址是否能够访问成功来判断当前的网络状态 */ public static boolean isConnect( ...
- 配置was7、并部署发布项目!
1:进入服务器,选择WebSphere Application Server,进入server1,右侧进入服务器基础结构,进入java和进程管理,进入进程定义 2:在页面左边菜单中选择java虚拟机, ...
- 面向对象设计模式之Interpreter解释器模式(行为型)
动机:在软件构建过程中 ,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化.在这种情况下,将特定领域的问题表达为某种语法规则的句子,然后构建一个 ...
- JS冒泡事件与处理
JavaSciprt事件中有两个很重要的特性:事件冒泡以及目标元素. 事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这 一过程被 ...
- Django - staticfiles,STATIC_ROOT, STATIC_URL,STATICFILES_DIRS
staticfiles:这是一个静态资源管理的app,django.contrib.staticfiles.老的版本中,静态资源管理一直是一个问题,部分app发布的时候需要带上静态资源,在部署的时候必 ...
- hdu3949
XOR Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- xilinx FPGA普通IO作PLL时钟输入
本帖转自于 :http://www.cnblogs.com/jamesnt/p/3535073.html 在xilinx ZC7020的片子上做的实验; [结论] 普通IO不能直接作PLL的时钟输入, ...
- Ubiquitous Religions
http://poj.org/problem?id=2524 这道题就是并查集. #include<cstdio> #include<cstring> #include< ...
- Android 4.0 新增的显示数据集的桌面控件
setRemoteAdapter (int viewId, Intent intent):该方法可以使用 Intent 更新 RemoteViews 中viewId 对应的组件. 上面方法的 Inte ...
- js 数字添加逗号,格式化数字
function addCommas(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + ...