MVC登录验证码实现
来源:互联网 发布:html5手机表白源码 编辑:程序博客网 时间:2024/05/22 02:00
前言:经过不断的尝试,终于写出了简单的验证效果了,看了好多大神写的代码感觉都看蒙了,我喜欢没写个功能然后把自己的代码整理成小案例,方便以后学习。
效果图
前端代码:
步骤一:html代码
/*引入js*/<script src="~/Scripts/jquery-1.10.2.js"></script>/*html代码*/<h2>验证码实现</h2><div id="row" style="width:320px; height:100px; "> <input id="txt_code" maxlength="4" type="text" placeholder="验证码" style="width:190px; float:left" /> <div style="width:130px; float:right; padding-top:4px; padding-left:14px;"> 看不清? <a id="switchCode" href="javascript:void();" style="text-decoration:none;">换一张</a> <img id="imgcode" class="authcode" src="/Login/GetAuthCode" width="80" height="25" /> </div></div>步骤二:js代码<script> $("#switchCode").click(function () { $("#imgcode").attr("src", "/Login/GetAuthCode?time=" + Math.random()); });</script>
后台代码
步骤3:添加一个VerifyCode类文件:
using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Web;namespace Ddmo{ public class VerifvCode { public byte[] GetVerifvCode() { int codeW = 80; int codeH = 30; int fontSize = 16; string chkCode = string.Empty; //颜色列表,用于验证码、噪线、噪点 Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue }; //字体列表,用于验证码 string[] font = { "Time New Roman" }; //验证码的字符集,去掉了一些容易混淆的字符 char[] character = { '1', '2', '3', '4', '5', '6', '7', '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 rnd = new Random(); //生成验证码字符串 for (int i = 0; i < 4; i++) { chkCode += character[rnd.Next(character.Length)]; } //写入Session、验证码加密 //WebHelper.WriteSession("nfine_session_verifycode", Md5.md5(chkCode.ToLower(), 16)); //创建画布 Bitmap bmp = new Bitmap(codeW, codeH); Graphics g = Graphics.FromImage(bmp); g.Clear(Color.White); //画噪线 for (int i = 0; i < 3; i++) { int x1 = rnd.Next(codeW); int y1 = rnd.Next(codeH); int x2 = rnd.Next(codeW); int y2 = rnd.Next(codeH); Color clr = color[rnd.Next(color.Length)]; g.DrawLine(new Pen(clr), x1, y1, x2, y2); } //画验证码字符串 for (int i = 0; i < chkCode.Length; i++) { string fnt = font[rnd.Next(font.Length)]; Font ft = new Font(fnt, fontSize); Color clr = color[rnd.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(); } } }}
步骤4:Controller代码:
public ActionResult GetAuthCode() { return File(new Ddmo.VerifvCode().GetVerifvCode(), @"image/Gif"); }
步骤5:运行代码:
0 0
- MVC登录验证码实现
- MVC 登录验证码
- .NET MVC 使用验证码验证登录
- MVC实现验证码
- 登录验证码实现
- Spring MVC 表单控制器实现验证用户登录验证
- Spring MVC 表单控制器实现验证用户登录验证
- mvc 验证登录
- 用MVC开发模式实现servlet简单的登录功能(带图片验证码)
- spring mvc+spring+mybatis+ajax实现登录验证
- Spring mvc拦截器实现登录验证拦截
- Spring mvc实现验证码
- Spring MVC验证码实现
- C#实现登录验证码
- java实现登录验证码
- 登录验证码的实现
- javaweb 实现验证码登录
- PHP实现验证码登录
- c++复习之对象数组
- 二分查找(Java实现)
- Hybrid app开发获取webview屏幕宽度
- javaScript实现五星好评代码
- 申请华夏邓白氏编码(申请苹果开发者账号需要)
- MVC登录验证码实现
- 仿射变换函数warpAffine、旋转
- 第十五周项目1—验证算法(希尔排序)
- Boot loader: Grub入门(转)
- 欢迎使用CSDN-markdown编辑器
- 动态异步加载js文件
- APP通信加密方案
- leetcode oj 28 字符串匹配 kmp 下标从0开始 kuangbin模板
- Viso画流程图在文本边框、矩形边框线上添加文字、写文字