图片验证码HTML页面:

                               <div style="float: left; width: 65%"><input class="ipt" id="verifycode" maxlength="4" type="text" placeholder="图片验证码"></div><div style="float: left; width: 35%"><img id="login_verifycode" class="img_verifycode" src="/Login/VerifyCode" width="100" height="30" alt="点击切换验证码"title="点击切换验证码" style="cursor: pointer; padding-top: 9px; padding-left: 9px;" /></div>

LoginController.cs

        //生成验证码[HttpGet]public ActionResult VerifyCode(){return File(new VerifyCode().GetVerifyCode(0,0,0), @"image/Gif");}

VerifyCode.cs

public byte[] GetVerifyCode(int width, int height, int length){int codeW = width;int codeH = height;int codeL = length;//设置默认最小值if (codeW < 80){codeW = 80;}if (codeH < 30){codeH = 30;}if(codeL < 4){codeL = 4;}string chkCode = string.Empty;//噪点的颜色列表Color[] color = {Color.Black,Color.Red,Color.Blue,Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };//字体列表string[] font = { "Times New Roman" };char[] character = { '2', '3', '4', '5', '6', '8', '9', 'a', 'b', 'd', 'e', 'f', 'h', 'k', 'm', 'n', 'r', 'x', 'y', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };Random random = new Random();//生成随机的验证码for (int i = 0; i < codeL; i++){chkCode += character[random.Next(character.Length)];}WebHelper.WriteSession("session_verifycode", Md5Helper.MD5(chkCode.ToLower(),16));//创建画布Bitmap bmp = new Bitmap(codeW, codeH);Graphics g = Graphics.FromImage(bmp);g.Clear(Color.White);//画噪线 for (int i = 0; i < 1; i++){int x1 = random.Next(codeW);int y1 = random.Next(codeH);int x2 = random.Next(codeW);int y2 = random.Next(codeH);Color clr = color[random.Next(color.Length)];g.DrawLine(new Pen(clr), x1, y1, x2, y2);}//画验证码字符串 for (int i = 0; i < chkCode.Length; i++){string fnt = font[random.Next(font.Length)];Font ft = new Font(fnt, 16);Color clr = color[random.Next(color.Length)];g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 18, (float)0);}//将验证码图片写入内存流,并将其以 "image/Png" 格式输出 MemoryStream ms = new MemoryStream();try{bmp.Save(ms, ImageFormat.Png);return ms.ToArray();}catch (Exception){return null;}finally{g.Dispose();bmp.Dispose();}}

点击图片切换验证码

           //点击切换验证码$("#login_verifycode").click(function () {$("#verifycode").val('');$("#login_verifycode").attr("src", contentPath + "/Login/VerifyCode?time=" + Math.random());});

ASP.NET MVC 登录验证码相关推荐

  1. ASP.NET.MVC登录页面

    ASP.NET.MVC登录页面 开发工具与关键技术:Visual Studio 2015 作者:昨夜星辰 撰写时间:2019年05月09日 一.我们学习MVC的时候做的第一步就是登陆,登陆是做项目必不 ...

  2. 【转】asp.net mvc生成验证码

    ASP.NET MVC实现网站验证码功能 网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录. ...

  3. ASP.NET实现登录验证码

    制作验证码主要是利用了C#的GDI绘制,效果如下图所示: html代码: <!DOCTYPE html> <html> <head><meta http-eq ...

  4. ASP.NET MVC 登录验证

     好久没写随笔了,这段时间没 什么事情,领导 一直没安排任务,索性 一直在研究代码,说实在的,这个登录都 搞得我云里雾里的,所以这次我可能也讲得不是 特别清楚,但是 我尽力把我知道的讲出来,顺便也对自 ...

  5. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(5.5) 登录功能的实现,完善登录功能...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来完善我们的登录功能 项目准备 我们用的工具是:VS 2013 + SqlServer 20 ...

  6. Asp.net MVC 3实例学习之ExtShop(六)——登录对话框

    登录对话框将使用jquery提供的对话框,所以不需要添加其它js文件.首先要为登录对话框添加一个表单模型.在Models目录下创建一个"AccountModels"类文件,然后添加 ...

  7. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  8. ASP.NET MVC自定义AuthorizeAttribute篇知识点讲解—登录限制

    阅读目录 1.前言 2.AuthorizeAttribute登录特性解释 3.代码示例 1.前言 a.微软对ASP.NET的开发从WebForm到MVC的转变,已经正式过去5,6个年头,现在WebFo ...

  9. ASP.NET MVC使用Authorize过滤器验证用户登录

    ASP.NET MVC使用Authorize过滤器验证用户登录.Authorize过滤器首先运行在任何其它过滤器或动作方法之前,主要用来做登录验证或者权限验证. 示例:使用Authorize过滤器实现 ...

最新文章

  1. webstorm中配置vue代码片段
  2. 昨天7月21号,笑笑又生病了
  3. java中的生产者消费者模式详解
  4. 2020年前端最火的技术是什么?
  5. C#将子窗体填充到父窗体的panel中
  6. 求cluster的质心坐标
  7. jmeter之线程组间变量的传递二
  8. 安卓4.2系统_五分钟了解 海贝(HiBy)R6PRO 安卓智能Hi-Fi播放器
  9. Android中的权限请求
  10. [渝粤教育] 西南石油大学 岩体力学 参考 资料
  11. 兔子如何吃掉狼和野猪的
  12. Protothreads:一个“蝇量级” C 语言协程库
  13. BiSET: Bi-directional Selective Encoding with Template for Abstractive Summarization翻译
  14. 扫描二维码进入小程序超详细过程
  15. 备份Ubuntu12.04 并制作成iso安装文件
  16. 【Oracle】一条SQL的一生
  17. java.lang.IllegalArgumentException报错
  18. H.264(H264)视频文件的制作
  19. 编写shell脚本判断当前主机的CPU生产商
  20. 全球及中国智能医疗产品行业发展态势及投资可行性研究报告2022-2027年

热门文章

  1. Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤
  2. 简谈socket在直播软件开发上的应用
  3. 手机运营商mcc-mnc检索
  4. IUS通过PLI产生fsdb波形
  5. 企业能效管理平台与政府平台对接的必要性!
  6. 大一学生WEB前端静态网页——旅游网页设计与实现(厦门旅游)
  7. 电商系统商品中心产品设计
  8. pandas-dataframe-operation
  9. 2017韩国云服务器,虎云韩国云服务器KCS安装宝塔Linux面板教程
  10. 基于ssm企业工资考勤管理系统