先创建一个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;
public partial class ValidateData : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "image/jpeg";
Session["code"] = GetElements();
System.Drawing.Image img = DrawImage(Session["code"].ToString());
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
public String GetElements()
{
string str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] elemets = str.Split(',');
string code = String.Empty;
Random rnd = new Random();
for (int i = 0; i < 4; i++)
{
code += elemets[rnd.Next(elemets.Length)];
}
return code;
}
System.Drawing.Image DrawImage(string element)
{
Bitmap bt = new Bitmap(100, 30);
Font ft = new Font("隶书", 20f, FontStyle.Bold);
Graphics g = Graphics.FromImage(bt);
int width = (int)g.MeasureString(element, ft).Width;
bt = new Bitmap(bt, width, bt.Height);
g = Graphics.FromImage(bt);
g.FillRectangle(Brushes.Gray, new Rectangle(0, 0, 100, 30));
g.DrawString(element, ft, Brushes.Black, 0f, 0f);
g.Dispose();
Random rnd = new Random();
for (int i = 0; i < 200; i++)
{
bt.SetPixel(rnd.Next(width), rnd.Next(30), Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256)));
}
return bt;
}
public bool IsReusable
{
get
{
return false;
}
}
}
这样OK控件写好了,用的时候需要在新页面中写一个aspx:image 或者 img 标签来获取
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Image ID="img" runat="Server" ImageUrl="~/ValidateData.aspx" />
<asp:TextBox ID="txtResult" runat="server" />
<asp:Label ID="lblResult" runat="server"/>
<%--<asp:CompareValidator ID="aaa" runat="server" />--%>
<asp:Button ID="btn" Text="Submit" runat="Server" OnClick="btn_Click" /><br />
<asp:TextBox
ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
后台
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.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_Click(object sender, EventArgs e)
{
if (txtResult.Text != null && txtResult.Text.ToLower() == Session["code"].ToString().ToLower())
{
lblResult.Text = "正确";
}
else
lblResult.Text = "错误";
}
}
好了,这样一个纯代码写的验证码空间就写好了
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/QQlvbo/archive/2008/12/15/3519923.aspx
分享到:
相关推荐
Asp.net 验证码控件Asp.net 验证码控件Asp.net 验证码控件
C#验证码控件,支持所有vs版本,已经过测试 属性已详细在里面介绍了
比较好的一款验证码控件,使用方法也很简单,多的不说了,大家自己下完回去看看吧
C#/Winform 开发的验证码控件,支持自定义字符和字符长度
1、在Web.config中的system.web节点...2、设置属性请将属性设置为按分类排序,即可看到验证码控件的属性。 3、保留所有版权,可以免费使用,但请不要尝试修改或应用于商业模式。 4、有任何问题请联系:yourfei@sina.com
Asp.net验证码控件 ,非第三方dll控件,此验证码控件是纯后台代码生成验证码,生成后的格式为bmp的图片格式,可改变倾斜度,噪点数,等
一款非常漂亮的.Net验证码控件,非常方便实用
Vb.net验证码控件及Demo源码 Vb.net验证码控件及Demo源码 Vb.net验证码控件及Demo源码
这是我自己开发的验证码控件,支持net2.0以上的. 该控件可以设置验证码的字数,验证码字体等信息. 可以设置背景色,框度,高度; 设置干扰线颜色、条数…… 提供CheckNum方法来验证输入验证码是否正确
C#实现的ASP.NET验证码控件,支持生成动态验证码图片,支持点击刷新,支持中文(日文)字符,支持字符彩色、扭曲、旋转,支持图像噪化。 推荐下载最新升级版2.0.1.0:http://download.csdn.net/source/2382392
ASP.NET2.0验证码控件
使用ASP.NET2.0自定义控件生成的验证码控件,验证码包含中英文
ASP.NET第三方控件,验证码控件,直接拖就可以用, 里面附带属性说明,还有实列,编程的朋友速度了。
安卓中的图片验证码控件
本人从各网站下载了SuperAuthenticationCode的dll验证码控件,几经查阅资料并亲自进行调试,总算搞明白了怎么调用。在rar文档中有readme.txt文件进行了如何在web.cfg,aspx,aspx.cs,以及dll对应的.refresh文件修改,...
asp.net验证码控件,很好用,可以导入工具箱,简单易用
一、控件特点: 1、使用方便,只需要从工具栏直接拖到页面即可自动验证,零代码使用。 2、自动完成客户端以及服务器的验证码验证,Ajax验证,随用户输入即时 验证并友好提示。 3、可自定义验证码图片外观。 4、有...
asp.net 一个cs文件,一个dll封装,封装的DLL类 验证码,直接引用添加到VS里边就可以
C#验证码控件