首页 > 代码库 > 验证码

验证码

如何设计验证码的实现

            <input id="txtUserName" type="text" name="username" class="username" placeholder="请输入您的用户名!">            <input id="txtPassword" type="password" name="password" class="password" placeholder="请输入您的用户密码!">            <input type="Captcha" class="Captcha" name="Captcha" placeholder="请输入验证码!" />            <img src="/Backstage/Home/CheckCode?ID=1" id="imgCode" class="check" alt="单击可刷新" onclick="ChangeCode();" />            @*<a href="javascript:void(0)" onclick="ClickRemoveChangeCode();return false;">看不清</a>*@            <button id="btnLogin" type="submit" class="submit_button">登录</button>            <div class="error"><span>+</span></div>
(1)首先我们看到我们绑定验证码的这里是这样写的,<img src=http://www.mamicode.com/”/Login/CheckCode?ID=1”>,那么前面的src绑定的地址什么意思呢?他的意思就是我们在Login控制器下面含有一个CheckCode方法来实现验证码的读取 >(2)我们要实现验证码,首先我们就要写一个生成验证码的类,没什么难度,网上一搜一大推,下面就是我封装的生成验证码的类,首先我们在LYZJ.UserLimitMVC.Common类库下面新建一个KenceryValidateCode.cs类来存放生成验证码的代码,在这里我们需要给类库引入命名空间System.Drawing。最终的代码如下:

KenceryValidateCode.cs

 

 

(3)那么现在我们的验证码生成的类已经完成了,这时候我们根据<img src=http://www.mamicode.com/”/Login/CheckCode?ID=1”>所知,我们要到Login控制器下面去创建CheckCode方法来实现能够从View层读取验证码显示出来,那么必然在我们项目当中women就要用到刚才定义的获取验证码的类,那么这时候women就要添加LYZJ.UserLimitMVC.Common的引用,这时候在Login控制器下面的读取验证码的方法代码如下:

        /// <summary>        /// 验证码的实现        /// </summary>        /// <returns></returns>        public ActionResult CheckCode()        {            //首先实例化验证码的类            KenceryValidateCode validateCode = new KenceryValidateCode();            //生成验证码指定的长度            string code = validateCode.CreateValidateCode(4);            //将验证码赋值给Session变量            Session["ValidateCode"] = code;            Session.Timeout = 30;            //创建验证码的图片            byte[] bytes = validateCode.CreateValidateGraphic(code);            //最后将验证码返回            return File(bytes, @"image/jpeg");        }

(4)view视图页面

Login.cshtml

验证码