博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成 验证验证码
阅读量:6251 次
发布时间:2019-06-22

本文共 3255 字,大约阅读时间需要 10 分钟。

主页前端代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="bbb.aspx.cs" Inherits="bbb" %>    
验证码图片 ImageUrl="~/YZM.aspx"图片来自于根目录下的YZM.aspx
<%--提示验证成功还是失败--%>

右键查看代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class bbb : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        Button1.Click += Button1_Click;    }    void Button1_Click(object sender, EventArgs e)    {        //获取用户输入的内容        string s = TextBox1.Text;        //将用户输入的内容全部转换成大写        if (s.ToUpper() == Session["yzm"].ToString().ToUpper())            Label1.Text = "正确!";        else            Label1.Text = "错误";    }}

生成验证码的web窗体

  不需要前台代码

  右键查看代码

 

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Drawing;//引用画画类的命名空间public partial class YZM : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        //建立一个颜色的泛型集合        List
clist = new List
(); //将下列的颜色添加到上面的泛型集合了 clist.Add(Color.Red); clist.Add(Color.Orange); clist.Add(Color.Pink); clist.Add(Color.Yellow); clist.Add(Color.Blue); clist.Add(Color.Aqua); clist.Add(Color.Green); clist.Add(Color.SeaGreen); clist.Add(Color.Orchid); //建立一个画布宽100高50 Bitmap像素固定 Bitmap img = new Bitmap(100, 50); //建立一个画布 将img放到画布上 Graphics g = Graphics.FromImage(img); //建立一个随机对象 Random r = new Random(); // 画布背景颜色 往画布填充矩形(实线画刷全部填满颜色从clist随机生成,)矩形的大小从左上角0,0到右下角100,50 g.FillRectangle(new SolidBrush(clist[r.Next(0, clist.Count)]), 0, 0, 100, 50); //往画布添加直线 for循环一次自动生成10条直线(放到验证码前面先生成直线后生成验证码验证码会把直线盖住易看清 ) for (int i = 0; i < 10; i++) { //建立画笔 画笔颜色随机生成 粗细从1到5随机生成 Pen pe = new Pen(new SolidBrush(clist[r.Next(0, clist.Count)]), r.Next(1, 5)); //直线起始的点 横向从0开始到100(画布长100)随机生成 纵向从0到50(画布宽50)随机生成 Point startP = new Point(r.Next(0, 100), r.Next(0, 50)); //直线结束的点 横向从0开始到100(画布长100)随机生成 纵向从0到50(画布宽50)随机生成 Point endP = new Point(r.Next(0, 100), r.Next(0, 50)); //将生成的画笔 起始点 结束点放到画布里 g.DrawLine(pe, startP, endP); } //验证码 string s = ""; //验证码的全部内容 string all = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; //for循环验证码全部内容 for (int i = 0; i < 4; i++) { //验证码的全部内容里从索引0到all的长度开始随机截取一个数一共4个数 s += all.Substring(r.Next(0, all.Length), 1); } //往画布添加内容 四个参数 内容s 黑体30px 字体颜色从clist里随机生成 从左上角0,0,开始 g.DrawString(s, new Font("黑体", 30), new SolidBrush(clist[r.Next(0, clist.Count)]), new PointF(0, 0)); Session["yzm"] = s; //生成的图片输出 Response.OutputStream属性 输出流 img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); }}

效果

 

转载于:https://www.cnblogs.com/skyhorseyk/p/7471034.html

你可能感兴趣的文章
linux版本选择
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
css
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>
清空表且自增的id重新从0开始
查看>>
[杂记]如何在LaTeX里插入高亮代码
查看>>
「常微分方程」(阿諾爾德) Page 6 問題4 經過擴張相空間的每一點有且僅有一條積分曲線...
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>
java安全证书配置
查看>>
使用erlang 建立一个自动化的灌溉系统(1)准备工作
查看>>
python 调用aiohttp
查看>>
mysql 案例~ mysql故障恢复
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>