.NET MVC 验证码
.NET MVC 验证码
效果差不多就这样,接下来直接上代码。
验证码生成器
- public class ValidateCode
- {
- public static ValidateCode Default = new ValidateCode();
- public int ImageWidth { get; set; }
- public int ImageHeight { get; set; }
- public string Letters { get; set; }
- public int CodeLength { get; set; }
- private Random r = new Random();
- public ValidateCode()
- {
- ImageWidth ;
- ImageHeight ;
- CodeLength ;
- Letters = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ1234567890";
- }
- public string GetValidationCode()
- {
- //合法随机显示字符列表
- System.Text.StringBuilder s = new System.Text.StringBuilder();
- //将随机生成的字符串绘制到图片上
- ; i < CodeLength; i++)
- {
- s));
- }
- return s.ToString();
- }
- public byte[] GetValidationImage(string codeString)
- {
- //设置输出流图片格式
- var b = new System.Drawing.Bitmap(ImageWidth, ImageHeight);
- var g = System.Drawing.Graphics.FromImage(b);
- );
- );
- );
- g);
- var font , System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);
- //合法随机显示字符列表
- //将随机生成的字符串绘制到图片上
- ; i < codeString.Length; i++)
- {
- );
- );
- );
- );
- );
- );
- g ));
- }
- //生成干扰线条
- var pen );
- ; i++)
- {
- g)));
- }
- var stream = new System.IO.MemoryStream();
- b.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
- g.Dispose();
- b.Dispose();
- //输出图片流
- return stream.ToArray();
- }
- }
使用方法
- public ActionResult validateCode() //创建一个action用于返回验证码图片
- {
- string validateCode = ValidateCode.Default.GetValidationCode(); //获取验证码
- Session["LoginValidateCode"] = validateCode; //将验证码保存到Session中
- return File(ValidateCode.Default.GetValidationImage(validateCode), @"image/jpeg"); //返回验证码图片
- }
- //直接将这个action 的地址赋值给img标签就可以了,例如 <img src="http://localhost:5695/home/validateCode" alt="">
- public ActionResult Login(string validateCode)
- {
- if (String.IsNullOrEmpty(Session["LoginValidateCode"].ToString()))
- {
- return Content("你登录页面停留的时间过久页已经超时");
- }
- else if (!Session["LoginValidateCode"].ToString().Equals(validateCode, StringComparison.CurrentCultureIgnoreCase))
- {
- return Content("验证码错误");
- }
- return RedirectToAction("Index"); //成功
- }
.NET MVC 验证码的更多相关文章
- MVC 验证码实现( 简易版)
现在网站上越来越多的验证码,使用场景也是越来越多,登陆.注册.上传.下载...等等地方,都有可能大量使用到验证码,那么制作验证码到底有多简单呢?我们一起来看下最简易版的验证码实现过程- 验证码的基本步 ...
- ASP.NET MVC验证码演示(Ver2)
前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...
- MVC验证码的编写
主要是相互学习一下mvc,希望各位大神指导 /// <summary> /// 生成随机数字 /// </summary> /// <returns>随机数字< ...
- 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> /// ...
- asp.net mvc 验证码
效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //{ // Validat ...
- 简单C#、asp.net mvc验证码的实现
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;u ...
- C# mvc 验证码3
//// <summary> /// 生成验证码 /// </summary> /// <param name="length">指定验证码的长 ...
随机推荐
- 机器学习方法(七):Kmeans聚类K值如何选,以及数据重抽样方法Bootstrapping
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入.我的博客写一些自己用得到东西,并分享给 ...
- [转载]Python命令行参数学习
转载自: http://blog.163.com/weak_time/blog/static/25852809120169333247925/ Python的命令行参数,提供了很多有用的功能,可以方便 ...
- 我XXXX!!!够了!!!从github拉到dockerhub,再用daocloud加速下载
史上比较曲折的救国方式了... 先在git hub上申请帐号,导入dockerfile. 然后在docker hub上关联git hub帐号作自动构建. 再用daocloud作加速,将docker i ...
- something about WinPE系统
[问]:啥是Win PE系统?做什么用的?和Win7哪个好? [答]:Win PE系统是一个小型系统,一般用特殊工具将Win PE制作在U盘里,电脑110的志愿者们使用它对电脑上原有系统进行修复或是进 ...
- CSS让文字在元素内绝对居中!!!【ie和谷歌】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 88. Merge Sorted Array【Easy】【双指针-不用额外空间归并两个有序数组】
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: T ...
- AndroidManifest.xml文件详解(uses-feature)
http://blog.csdn.net/think_soft/article/details/7596796 语法(SYNTAX): <uses-featureandroid:name=&qu ...
- 公司gitlab不支持ssh时,用http提交代码免密输入方法
由于公司内网22端口被封,只能拨vpn 才能用ssh 提交代码.因此记录以下免密码http(https)提交方式. 修改项目下.git/config 将原来的 http://git.xxx.com/x ...
- 洛谷——P2009 跑步
P2009 跑步 题目背景 跑步是一项有意思的运动,尤其是可以开发人的脑筋.常神牛很喜欢跑步. 题目描述 常神牛跑步的场地是一个多边形(边数≤20,每个顶点用英文大写字母表示),并且在这个多边形内部, ...
- Mysql远程连接报错:SQL Error (1130): Host '192.168.6.128' is not allowed to connect to this MySQL server
通过SQLyog连接linux中的MySQL报错问题:SQL Error (1130): Host '192.168.6.128' is not allowed to connect to this ...