Exemple #1
0
        /// <summary>
        /// 初始化防止重复提交在Page_Load
        /// 初始化之前要在前台加入一个隐藏域web控件&lt;asp:HiddenField ID="HidSign" runat="server" /&gt;
        /// <param name="_Page">Page对象</param>
        /// <param name="_HiddenField">隐藏域对象ID</param>
        /// </summary>
        public static void Start_HidSign(System.Web.UI.Page _Page, System.Web.UI.WebControls.HiddenField _HiddenField)
        {
            string S_Sign = MathRandom.RandomDateTime(false, true).ToString() + MathRandom.RandomNumber(6);

            _HiddenField.Value        = S_Sign;
            _Page.Session["WHidSign"] = S_Sign;
        }
        /// <summary>
        /// 生成验证码图片
        /// </summary>
        /// <param name="_Page">Page</param>
        /// <param name="RandomLength">验证码的位数</param>
        public static void RandomPic(System.Web.UI.Page _Page, int RandomLength)
        {
            //随机数
            int Num = MathRandom.RandomNumber(RandomLength);

            _Page.Session["WRandomNum"] = Num;

            //创建Bmp位图
            Bitmap bitMapImage = new Bitmap(RandomLength * 13 + 16, 24);

            Graphics graphicImage = Graphics.FromImage(bitMapImage);

            //设置画笔的输出质量
            graphicImage.SmoothingMode = SmoothingMode.HighSpeed;

            //添加文本字符串
            graphicImage.DrawString(Num.ToString(), new Font("黑体", 18, FontStyle.Bold), new SolidBrush(Color.Red), new Point(2, 0));

            //设置图像输出的格式
            _Page.Response.ContentType = "image/jpeg";
            //清空输出数据
            _Page.Response.Clear();
            //保存数据流
            bitMapImage.Save(_Page.Response.OutputStream, ImageFormat.Jpeg);

            //释放占用的资源
            graphicImage.Dispose();
            bitMapImage.Dispose();
        }