BasePage验证登录 和随机验证码

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace AfterEnd.Admin
{
    //让页面继承自该类,做验证
    public class BasePage:System.Web.UI.Page
    {
        public BasePage()
        {
            this.Load += new EventHandler(BasePage_Load);    
        }

        //页面加载的时候做验证,用户是否登录
        protected void BasePage_Load(object sender, EventArgs e)
        {
            if (Session["User"]==null)
            {
                Response.Redirect("Login.aspx");
            }
        }

    }
}

————————————————————————————————————————-

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;
using System.Drawing.Imaging;

public partial class ValidateCode : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //验证码中可能会出现的字符集合
        String checkCodeString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        //验证码字符集合的长度
        int length = checkCodeString.Length;
        //设置绘制验证码的字体,并设置为粗体
        Font font = new Font("宋体", 24, FontStyle.Bold);
        //绘制验证码的笔刷
        Brush brush = null;
        //绘制验证码文字的颜色
        Color brushColor = new Color();
        //验证码的字符串
        String checkCode = String.Empty;
        //当前要绘制的验证字符
        String code=String.Empty;
        //要生成的验证码图片对象
        Bitmap image = new Bitmap(80, 40);
        //绘图画板
        Graphics graphics = Graphics.FromImage(image);
        //填充背景为白色
        graphics.Clear(Color.White);
        //创建随机数对象
        Random random = new Random();
        for (int i = 0; i < 4; i++)
        {
            //为了保证取的字符索引不超过0-35之间
            //取任何数的余数都肯定小于自身
            //采用当前时间的毫秒 % 验证码字符的总长度=当前验证字符
            int current =random.Next(DateTime.Now.Millisecond) % length;
            //截取验证字符
            code = checkCodeString.Substring(current, 1);
            //拼接到验证码的字符串
            checkCode+=code;
            //随机生成验证码字符的颜色
            brushColor = Color.FromArgb(random.Next(256), random.Next(256), random.Next(256));
            //笔刷的颜色
            brush = new SolidBrush(brushColor);
            //绘制刚刚得到的字符串
            graphics.DrawString(code, font, brush, i * 15 + 2, 2);
        }

        Response.Clear();
        Response.ContentType = "image/pjpeg";
        //在Session中保存验证码字符串,以便与用户输入进行比较
        Session["CheckCode"] = checkCode;
        image.Save(Response.OutputStream,ImageFormat.Jpeg);
        image.Dispose();
        Response.End();
    }
}


 ________________________使用验证控件

 <img src="ValidateCode.aspx" width="60" height="25" style="cursor: pointer;" onclick="this.src='ValidateCode.aspx?id'+Math.random()*10000" />

 

posted @ 2012-06-25 10:50  ComBat  阅读(251)  评论(0编辑  收藏  举报