• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

验证码小程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

代码


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;

namespace SessionCode
{
    
public partial class checkimage : System.Web.UI.Page
    {
        
/// <summary>
        
/// 验证码产生程序
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            GetCode();
        }

        
//产生code
        protected void GetCode() 
        {
            System.Random rand 
= new Random();
            
int len = 4;    //这里设置验证码长度,我的定义为4,最近见到些网上上有随机4,5,6位的。这里自己写个随机函数就可以了。 
            char[] chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
            System.Text.StringBuilder myStr 
= new System.Text.StringBuilder();

            
for (int iCount = 0; iCount < len; iCount++)
            {
                myStr.Append(chars[rand.Next(chars.Length)]);
            }
            
string text = myStr.ToString();
            
// 保存验证码到 session 中以便其他模块使用 
            Session["code"= text;   //这里你的登陆页面判断输入验证码是否正确,if (txtCode.text == Session["code"]) 正确读库检索User/Password,不正确弹窗。自己写
            Size ImageSize = Size.Empty;
            Font myFont 
= new Font("MS Sans Serif"12);  //绘制在验证图片上的文字大小
            
// 计算验证码图片大小 
            using (Bitmap bmp = new Bitmap(55))
            {
                
using (Graphics g = Graphics.FromImage(bmp))
                {
                    SizeF size 
= g.MeasureString(text, myFont, 10000);
                    ImageSize.Width 
= (int)size.Width + 3;
                    ImageSize.Height 
= (int)size.Height + 3;
                }
            }
            
// 创建验证码图片 
            using (Bitmap bmp = new Bitmap(ImageSize.Width, ImageSize.Height))
            {
                
// 绘制验证码文本 
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    g.Clear(Color.White);
                    
using (StringFormat f = new StringFormat())
                    {
                        f.Alignment 
= StringAlignment.Near;
                        f.LineAlignment 
= StringAlignment.Center;
                        f.FormatFlags 
= StringFormatFlags.NoWrap;
                        g.DrawString(text, myFont, Brushes.Black, 
new RectangleF(00, ImageSize.Width, ImageSize.Height), f);
                    }
//using 
                }//using 
                
// 制造杂点 杂点面积占图片面积的 20% 
                int num = ImageSize.Width * ImageSize.Height * 20 / 100;
                
for (int iCount = 0; iCount < num; iCount++)
                {
                    
// 在随机的位置使用随机的颜色设置图片的像素 
                    int x = rand.Next(ImageSize.Width);
                    
int y = rand.Next(ImageSize.Height);
                    
int r = rand.Next(255);
                    
int g = rand.Next(255);
                    
int b = rand.Next(255);
                    Color c 
= Color.FromArgb(r, g, b);
                    bmp.SetPixel(x, y, c);
                }
//for 
                
// 输出图片 
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                
this.Response.ContentType = "image/png";
                ms.WriteTo(
this.Response.OutputStream);
                ms.Close();
            }
//using 
            myFont.Dispose();
        }
    }
}

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序中获取手机验证码倒计时60s发布时间:2022-07-18
下一篇:
微信小程序 功能函数 获取验证码*发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap