当前位置:  编程技术>.net/c#/asp.net

ASP.NET 验证码与刷新验证码的例子

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节主要内容: 掌握ASP.NET 实现验证码与刷新验证码的方法。   1,生成验证码   代码示例: ///     /// 生成验证码图片,保存session名称VerificationCode     ///     public static void CreateVerificationCode()     {         int ...

本节主要内容:
掌握ASP.NET 实现验证码与刷新验证码的方法。
 
1,生成验证码
 

代码示例:
///
    /// 生成验证码图片,保存session名称VerificationCode
    ///
    public static void CreateVerificationCode()
    {
        int number;
        string checkCode = string.Empty;
        //随机数种子
        Random randoms = new Random();
        for (int i = 0; i < 4; i++) //校验码长度为4
        {
            //随机的整数
            number = randoms.Next();
            //字符从0-9,A-Z中随机产生,对应的ASCII码分别为
            //48-57,65-90
            number = number % 36;
            if (number < 10)
            {
                number += 48;
            }
            else
            {
                number += 55;
            }
            checkCode += ((char)number).ToString();
        }
        //在session中保存校验码
        System.Web.HttpContext.Current.Session["VerificationCode"] = checkCode;
        //若校验码为空,则直接返回
        if (checkCode == null || checkCode.Trim() == String.Empty)
        {
            return;
        }
        //根据校验码的长度确定输出图片的长度
        System.Drawing.Bitmap image = new System.Drawing.Bitmap(55, 20);//(int)Math.Ceiling(Convert.ToDouble(checkCode.Length * 15))
        //创建Graphics对象
        Graphics g = Graphics.FromImage(image);
        try
        {
            //生成随机数种子
            Random random = new Random();
            //清空图片背景色
            g.Clear(Color.White);
            //画图片的背景噪音线 10条
            //---------------------------------------------------
            for (int i = 0; i < 10; i++)
            {
                //噪音线起点坐标(x1,y1),终点坐标(x2,y2)
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);
                //用银色画出噪音线
                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }
            //---------------------------------------------------
            //Brush b = Brushes.Silver;
            //g.FillRectangle(b, 0, 0, image.Width, image.Height);
            //---------------------以上两种任选其一------------------------------
            //输出图片中校验码的字体: 12号Arial,粗斜体
            Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));
            //线性渐变画刷
            LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Purple, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);
            //画图片的前景噪音点 50个
            for (int i = 0; i < 50; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);
                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }
            //画图片的边框线
            g.DrawRectangle(new Pen(Color.Peru), 0, 0, image.Width - 1, image.Height - 1);
            //创建内存流用于输出图片
            using (MemoryStream ms = new MemoryStream())
            {
                //图片格式指定为png
                image.Save(ms, ImageFormat.Jpeg);
                //清除缓冲区流中的所有输出
                System.Web.HttpContext.Current.Response.ClearContent();
                //输出流的HTTP MIME类型设置为"image/Png"
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                //输出图片的二进制流
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
        } //www.
        finally
        {
            //释放Bitmap对象和Graphics对象
            g.Dispose();
            image.Dispose();
        }
    }

2,创建一个aspx页面:
 

代码示例:
 
 

3,添加HTML代码,引用:
 

代码示例:
 

     验证码:
     *
    
    
 

4,实现刷新的方法
 

代码示例:

  $("#imgAuthCode").click(function () {
     $(this).attr("src", "AuthCode.aspx?code=" + (new Date()).getTime());
  });

效果图:


    
 
 

您可能感兴趣的文章:

  • asp.net ajax时用alert弹出对话框与验证控件冲突的解决方法
  • asp.net验证邮箱格式的两种方法
  • asp.net创建位图生成验证图片类(验证码类)
  • asp.net使用ODP即oracle连接方式的的防注入登录验证程序
  • asp.net 验证码实现代码一例
  • asp email邮箱地址验证正则表达式
  • asp.net生成图片验证码的例子
  • asp.net 简单验证码的实现方法
  • asp.net 验证身份证号码的代码一例
  • asp.net4中Form验证要用UseCookies
  • asp.net验证码代码(C#)
  • 如何解决 asp.net 点击验证码不刷新的问题
  • asp.net随机验证码生成示例
  • asp.net验证码图片生成示例
  • asp.net 验证码的示例代码(入门参考)
  • asp.net 常用正则表达式与验证类
  • asp.net数字、字符相混合的验证码示例
  • asp.net mvc3异常处理和身份验证
  • 我用asp.net做一个聊天室,各位有没有好的页面刷新办法?
  • asp.net Timer无刷新定时器的例子
  • 我用asp.net做一个聊天室,要求在一个帧里点击按钮,立即刷新另外一帧,怎么做?
  • asp.net防止页面刷新重复提交的代码
  • Asp.net弹出窗口同时防止刷新重复提交的方法
  • asp.net 防止刷新重复提交的代码(禁用工具栏刷新按钮 变灰)
  • Asp.net防止后退、刷新重复提交的方法
  • c# UpdatePanel无刷新上传图片 asp.net无刷新上传
  • Asp.net防刷新重复提交与防后退的方法
  • asp.net防止刷新重复提交的方法与代码
  • asp.net页面刷新后字体等变大问题的解决方法
  • asp.net防止刷新页面重复提交表单原理与实例
  • c#(asp.net)防止刷新重复提交数据的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样用JDK写用于ASP的组件?最好有例子或详细资料!
  • asp.net中System.Timers.Timer的例子
  • c#正则过滤图片标签 asp.net正则过滤的例子
  • asp.net操作cookie的例子
  • asp.net页面时间格式化的例子
  • asp.net上传并读取Excel文件的例子
  • asp.net 组件开发 内嵌资源引用的例子 iis7站长之家
  • asp.net上传文件小例子
  • asp.net读取与写入cookie的小例子
  • asp.net 组件开发 内嵌资源引用的例子
  • ASP.NET MVC处理文件上传的例子
  • asp.net去除HTML标签删除HTML小例子
  • asp.net Textbox服务器控件的例子
  • asp.net生成与解析二维码的例子
  • asp.net DataGrid的例子 DataGrid中删除记录
  • asp.net发邮件的小例子
  • c#(asp.net)生成随机数(不重复)的例子
  • 关于ASP.NET中TreeView用法的一个小例子
  • CODEPAGE 列表与asp应用例子第1/2页
  • ASP.Net中命名空间Namespace浅析和使用例子
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3