c#图片随机验证码的实现
来源:互联网 发布:超图软件中标 编辑:程序博客网 时间:2024/05/02 02:35
新建Web窗体CheckCode.aspx
如下CheckCode.aspx.cs的代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Design;
public partial class CheckCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.CreateCheckCodeImage(RndNum());
}
private string RndNum()
{
int number;
char code;
string checkcode = string.Empty;
System.Random random = new Random();
for (int i = 0; i < 4; i++)
{
number = random.Next();
if(number % 2== 0)
code = (char)('0' + (char)(number % 10));
else if(number % 3== 0)
code = (char)('a' + (char)(number % 26));
else
code = (char)('A' + (char)(number % 26));
checkcode += code.ToString();
}
Session["CheckCode"] = checkcode;
return checkcode;
}
private void CreateCheckCodeImage(string checkcode)
{
if (checkcode == null || checkcode.Trim() == string.Empty)
return;
System.Drawing.Bitmap Image = new System.Drawing.Bitmap((int)Math.Ceiling((checkcode.Length*12.5)),22);
Graphics G = Graphics.FromImage(Image);
try
{
//生成随机生成器
Random random = new Random();
//清空图片背景色
G.Clear(Color.White);
//画图片的背景噪音线
for(int i= 0; i < 25; i++)
{
int X1 = random.Next(Image.Width);
int X2 = random.Next(Image.Width);
int Y1 = random.Next(Image.Height);
int Y2 = random.Next(Image.Height);
G.DrawLine(new Pen(Color.Silver),X1,Y1,X2,Y2);
}
Font FONT = new System.Drawing.Font("ARIAL",12,(System.Drawing.FontStyle.Bold|System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush Brush=new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,Image.Width,Image.Height), Color.Blue,Color.DarkRed,1.2F,true);
G.DrawString(checkcode,FONT, Brush,2, 2);
//画图片的前景噪音点
for(int i = 0; i < 100; i++)
{
int x= random.Next(Image.Width);
int y= random.Next(Image.Height);
Image.SetPixel(x,y,Color.FromArgb(random.Next()));
}
//画图片的边框线
G.DrawRectangle(new Pen(Color.Silver),0,0,Image.Width-1,Image.Height-1);
System.IO.MemoryStream MS=new System.IO.MemoryStream();
Image.Save(MS,System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "IMAGE/GIF";
Response.BinaryWrite(MS.ToArray());
}
finally
{
G.Dispose();
Image.Dispose();
}
}
}
然后在登录页面login.aspx中:
<asp:ImageButton ID="YZM" ImageUrl="~/checkcode.aspx" runat="server" Height="26px" Style="z-index: 101;
left: 143px; position: absolute; top: 65px" Width="57px" />
<asp:LinkButton ID="CHANGECODE" runat="server" onclick="CHANGECODE_CLICK" Style="z-index: 103; left: 141px;position: absolute; top: 99px" Font-Size="10pt" Width="81px">换一个验证码</asp:LinkButton>
<ASP:BUTTON ID="BUTTON1" RUNAT="SERVER" ONCLICK="BUTTON1_CLICK" TEXT="BUTTON" />
最后在login.aspx.cs中:
protected void CHANGECODE_CLICK(object sender, EventArgs e)
{
//什么都不用写
}
public void BUTTON1_CLICK(OBJECT SENDER, EVENTARGS E)
{
if (Session["CheckCode"].ToString().ToLower() != TextBox.Text.ToLower())//忽略大小写
{
//"验证码错误!
}
else
{
//验证码正确
}
}
- c#图片随机验证码的实现
- java实现随机验证码的图片
- 随机图片验证码实现
- 图片随机验证码代码实现
- C#实现的图片复杂验证码
- C#生成随机验证图片
- 随机图片验证码
- C# 随机验证码
- C#随机验证码
- 随机图片验证码的制作
- 生成随机数字的图片验证码
- PHP 生成随机的验证码图片
- 【java】图片验证码的随机生成
- C#产生随机验证码的代码
- java实现随机的验证码的图片(第二种)
- 重写IHttpHandler接口实现产生随机验证码图片
- 一次性随机验证码的实现
- 随机验证码的各种实现方法
- 输入长度的限制
- [网络]大二上学期学习课程
- 扫雷代码下载地址可以打开啦!
- Android入门第三篇之RelativeLayout、FrameLayout
- curl模拟登陆
- c#图片随机验证码的实现
- 简单有效统计web 页pv、uv的方法
- JavaScript 库作用及对比介绍
- 持续集成实践问题(一)提交前功能测试运行太慢
- UCHOME中配置邮件
- 怎样去理解去耦电容
- Java实例教程(2)Hello World应用程序
- 090904项目进展:强制终止线程
- JavaScript密码强度判断