• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net生成验证码(纯数字)
    CheckCode.cs
    复制代码 代码如下:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Drawing;
    /// summary>
    /// CheckCode 的摘要说明
    /// /summary>
    public class CheckCode
    {
    public CheckCode()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public static void DrawImage()
    {
    CheckCode img = new CheckCode();
    HttpContext.Current.Session["CheckCode"] = img.RndNum(4);
    img.checkCodes(HttpContext.Current.Session["CheckCode"].ToString());
    }
    /// summary>
    /// 生成验证图片
    /// /summary>
    /// param name="checkCode">验证字符/param>
    private void checkCodes(string checkCode)
    {
    int iwidth = (int)(checkCode.Length * 13);
    System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 23);
    Graphics g = Graphics.FromImage(image);
    g.Clear(Color.White);
    //定义颜色
    Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };
    //定义字体
    string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };
    Random rand = new Random();
    //随机输出噪点
    for (int i = 0; i 50; i++)
    {
    int x = rand.Next(image.Width);
    int y = rand.Next(image.Height);
    g.DrawRectangle(new Pen(Color.LightGray, 0), x, y, 1, 1);
    }
    //输出不同字体和颜色的验证码字符
    for (int i = 0; i checkCode.Length; i++)
    {
    int cindex = rand.Next(7);
    int findex = rand.Next(5);
    Font f = new System.Drawing.Font(font[findex], 10, System.Drawing.FontStyle.Bold);
    Brush b = new System.Drawing.SolidBrush(c[cindex]);
    int ii = 4;
    if ((i + 1) % 2 == 0)
    {
    ii = 2;
    }
    g.DrawString(checkCode.Substring(i, 1), f, b, 3 + (i * 12), ii);
    }
    //画一个边框
    g.DrawRectangle(new Pen(Color.Black, 0), 0, 0, image.Width - 1, image.Height - 1);
    //输出到浏览器
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
    HttpContext.Current.Response.ClearContent();
    //Response.ClearContent();
    HttpContext.Current.Response.ContentType = "image/Jpeg";
    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
    g.Dispose();
    image.Dispose();
    }
    /// summary>
    /// 生成随机的字母
    /// /summary>
    /// param name="VcodeNum">生成字母的个数/param>
    /// returns>string/returns>
    private string RndNum(int VcodeNum)
    {
    string Vchar = "0,1,2,3,4,5,6,7,8,9";
    string[] VcArray = Vchar.Split(',');
    string VNum = ""; //由于字符串很短,就不用StringBuilder了
    int temp = -1; //记录上次随机数值,尽量避免生产几个一样的随机数
    //采用一个简单的算法以保证生成随机数的不同
    Random rand = new Random();
    for (int i = 1; i VcodeNum + 1; i++)
    {
    if (temp != -1)
    {
    rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));
    }
    int t = rand.Next(VcArray.Length);
    if (temp != -1 temp == t)
    {
    return RndNum(VcodeNum);
    }
    temp = t;
    VNum += VcArray[t];
    }
    return VNum;
    }
    }

    再建立一个引用类的页面checkCode.aspx前台不用写东西,后台引用我们创建的类的DrawImage()方法即可。
    复制代码 代码如下:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    public partial class checkCode : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    CheckCode.DrawImage();
    }
    }

    下面我们在需要验证码的页面引用checkCode.aspx页面即可。
    前台
    复制代码 代码如下:

    asp:TextBox ID="Validator" runat="server" Width="150px" >/asp:TextBox>
    img id="Img1" alt="看不清,请点击我!" onclick="this.src=this.src+'?'" src="checkCode.aspx"
    style="width: 73px; height: 22px" align="left" />
    asp:ImageButton ID="imgBtnLogin" runat="server" ImageUrl="~/Images/Login.GIF"
    OnClick="imgBtnLogin_Click" />

    后台判断
    复制代码 代码如下:

    protected void imgBtnLogin_Click(object sender, ImageClickEventArgs e)
    {
    if(this.Validator.Text==Session["CheckCode"].ToString())
    {
    //。。。。
    }
    else
    {
    Response.Write("script>alert('验证码输入错误,请重新输入!');Location='MumberValidate.aspx'/script>");
    return;
    }
    }

    以上代码请根据实际情况作适当修改。
    您可能感兴趣的文章:
    • asp.net 验证码生成和刷新及验证
    • asp.net(C#) 生成随机验证码的代码
    • asp.net 简单验证码验证实现代码
    • ASP.NET MVC验证码功能实现代码
    • ASP.NET中的无刷新验证码的开发(完整代码)
    • asp.net 图片验证码的HtmlHelper
    • asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字)
    • asp.net 验证码的简单制作(vb.net+C#)
    • asp.net下生成英文字符数字验证码的代码
    • asp.net生成字母和数字混合图形验证码
    • Asp.net开发之webform图片水印和图片验证码的实现方法
    • ASP.NET实现的生成验证码功能示例【附demo源码】
    上一篇:asp.net生成验证码代码(纯中文)
    下一篇:ASP.NET 文件断点续传实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp.net生成验证码(纯数字) asp.net,生成,验证,码,纯,