• 验证码-直接使用


    随便建个aspx页面,前台不需任何处理,后台代码如下:


    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;

    using System.Drawing;


    public partial class Default2 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

             string checkCode = CreateRandomCode(4);

              Session["CheckCode"] = checkCode;

              CreateImage(checkCode);

        }

         private string CreateRandomCode(int codeCount)

        {


            // 函数功能:产生数字和字符混合的随机字符串

            string allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

            char[] allCharArray = allChar.ToCharArray();

            string randomCode = "";

            Random rand = new Random();

            for (int i = 0; i < codeCount; i++)

            {

               int r=rand.Next(61);

               randomCode+=allCharArray.GetValue(r);

            }

             return randomCode;

            

         }

             


        private void CreateImage(string checkCode)

        {


            // 生成图象验证码函数

           int iwidth = (int)(checkCode.Length * 11.5);

            System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);

            Graphics g = Graphics.FromImage(image);

            Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);

            Brush b = new System.Drawing.SolidBrush(Color.Azure);//字母白色

            //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);

            g.Clear(Color.Brown);//背景灰色

            g.DrawString(checkCode, f, b, 3, 3);


            Pen blackPen = new Pen(Color.Black, 0);

            Random rand = new Random();

            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

            Response.ClearContent();

            Response.ContentType = "image/Jpeg";

            Response.BinaryWrite(ms.ToArray());

            g.Dispose();

            image.Dispose();

        }

    }

    用个Image控件ImageURL绑定这个aspx文件就ok啦,很简单,实用。代码相应的可以修改。

    如果想实现无刷新的更换验证图片 

    在页面中加个脚本
    function aa()
    {
    var x=document.getElementById(image1);
    x.setAttribute('src','CheckCode.aspx?'+Math.random());
    }
    <img id="image1" src="CheckCode.aspx" alt="验证码" onclick="aa()" /><a href="javascript:aa()" >看不清楚</a>
    这样应该就可以了。

    分类: Asp.Net
    绿色通道: 好文要顶 已关注 收藏该文与我联系
    荣誉:推荐博客
    我在关注他 取消关注
    0
    0
    (请您对文章做出评价)
    posted @ 2008-12-22 09:01 GWPBrian 阅读(1058) 评论(7) 编辑 收藏
      回复引用
    #1楼 2008-12-22 11:17 刘强 cnblogs  
    顺便问下,如何实现点击刷新 验证码的功能?
    支持(0)反对(0)
      回复引用
    #2楼[楼主] 2008-12-22 13:12 GWPBrian  
    @刘强 cnblogs
    绑定到image button
    支持(0)反对(0)
      回复引用
    #3楼 2008-12-22 13:14 刘强 cnblogs  
    @GWPBrian
    直接绑定到image button会刷新整个页面,如何不刷新呢
    支持(0)反对(0)
      回复引用
    #4楼[楼主] 2008-12-22 13:29 GWPBrian  
    @刘强 cnblogs
    肯定要用脚本,看看这个吧,以前看过的一篇文章
    http://www.listeninfo.cn/Article/JSWD/200807/66507.html
    支持(0)反对(0)
      回复引用
    #5楼[楼主] 2008-12-22 13:39 GWPBrian  
    @刘强 cnblogs
    在页面中加个脚本
    function aa()
    {
    var x=document.getElementById(image1);
    x.setAttribute('src','CheckCode.aspx?'+Math.random());
    }
    <img id="image1" src="CheckCode.aspx" alt="验证码" onclick="aa()" /><a href="javascript:aa()" >看不清楚</a>
    这样应该就可以了。
    支持(0)反对(0)
      回复引用
    #6楼 2008-12-22 14:09 刘强 cnblogs  
    --引用--------------------------------------------------
    GWPBrian: @刘强 cnblogs
    在页面中加个脚本
    function aa()
    {
    var x=document.getElementById(image1);
    x.setAttribute('src','CheckCode.aspx?'+Math.random());
    }
    &lt;img id=&quot;image1&quot; src=&quot;CheckCode.aspx&quot; alt=&quot;验证码&quot; onclick=&quot;aa()&quot; /&gt;&lt;a href=&quot;javascript:aa()&quot; &gt;看不清楚&lt;/a&gt;
    这样应该就可以了。
    --------------------------------------------------------

    嗯,对就这样,谢谢
  • 相关阅读:
    10.17T1 联通块
    10.16复习 数位DP——不要62
    10.16T6 逆序对变式
    10.16T5 最小环+拆点最短路
    10.16T4 GCD递归
    10.16T2 平方差
    10.16T3 乱搞+最优性剪枝
    10.16T1 二分+单调队列优化DP
    10.15T3 树形DP
    10.15T2 生成树+非树边暴力
  • 原文地址:https://www.cnblogs.com/sdya/p/4680380.html
Copyright © 2020-2023  润新知