由几个月前写的(验证码利用ashx一般处理程序来做),修改为不用以一般处理程序

这段代码是我根据几个月前 ,我写的“验证码 利用ashx一般处理程序来实现”的一片随笔所想;

见代码:

Page:check.aspx

 protected void Page_Load(object sender, EventArgs e)
    {
        string checkCode = GetRandomCode(4);
        Session["CheckCode"] = checkCode;
        SetPageNoCache();
        CreateImage(checkCode);
    }
    private void SetPageNoCache()
    {
        Response.Buffer = true;
        Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
        Response.Expires = 0;
        Response.CacheControl = "no-cache";
        Response.AddHeader("Pragma", "No-Cache");
    }
    private string GetRandomCode(int codeCount)
    {
        string strNumbers = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        Random random = new Random();
        string randomString = "";
        for (int i = 0; i < codeCount; i++)
        {
            randomString += strNumbers[random.Next(0, 36)].ToString();
        }
        return randomString;
    }
    private void CreateImage(string checkCode)
    {
        Response.ContentType = "image/jpeg";
        Bitmap bitmap = new Bitmap(100, 30);
        Graphics g = Graphics.FromImage(bitmap);
        g.Clear(Color.White);
        g.DrawString(checkCode, new Font("Mighty to Save", 18, FontStyle.Italic), Brushes.Black, new PointF(0, 0));
        bitmap.Save(Response.OutputStream,ImageFormat.Jpeg);
        Response.Cache.SetNoStore();
        g.Dispose();
        bitmap.Dispose();
       

    }

调用fangshi:

 

-
 
-
 

<img src="http://archive.cnblogs.com/a/2043210/check.aspx" rel="nofollow"/>

 

加"?"的原因是防止验证码不刷新

posted @ 2013-03-20 12:13  Nina  阅读(188)  评论(0)    收藏  举报