VS2005.NET C# 编写验证码:
来源:互联网 发布:linux gcj 编辑:程序博客网 时间:2024/06/04 18:10
来自:http://zhidao.baidu.com/question/25377425.html
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;public partial class ValidateCode : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { string checkCode = CreateRandomCode(4); Session["CheckCode"] = checkCode; CreateImage(checkCode); } private string CreateRandomCode(int codeCount) { string allChar = "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,W,X,Y,Z"; string[] allCharArray = allChar.Split(','); string randomCode = ""; int temp = -1; Random rand = new Random(); for (int i = 0; i < codeCount; i++) { if (temp != -1) { rand = new Random(i * temp * ((int)DateTime.Now.Ticks)); } int t = rand.Next(35); if (temp == t) { return CreateRandomCode(codeCount); } temp = t; randomCode += allCharArray[t]; } return randomCode; } private void CreateImage(string checkCode) { int iwidth = (int)(checkCode.Length * 11.5); System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image); System.Drawing.Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold); System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.White); //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height); g.Clear(System.Drawing.Color.Blue); g.DrawString(checkCode, f, b, 3, 3); System.Drawing.Pen blackPen = new System.Drawing.Pen(System.Drawing.Color.Black, 0); Random rand = new Random(); for (int i = 0; i < 5; i++) { int y = rand.Next(image.Height); g.DrawLine(blackPen, 0, y, image.Width, y); } System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Response.ClearContent(); Response.ContentType = "image/Jpeg"; Response.BinaryWrite(ms.ToArray()); g.Dispose(); image.Dispose(); }}//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);g.Clear(Color.Blue);这两种方法都可以改变生成图片的背景颜色下面那个for循环用来生成一些随机的水平线在需要用到验证码的页面添加一个<asp:Image>控件即可,但是要把ImageUrl指向生成验证码的页面
- VS2005.NET C# 编写验证码:
- C#实现验证码编写
- 用C#编写验证码的方法
- C#水印验证码的编写
- .net中编写简单验证码
- VS2005使用C#编写ActvieX控件
- c# asp.net实现验证码
- c# asp.net实现验证码
- ASP.NET C#验证码控件使用
- asp.net中用C#生产验证码
- 【.net】c#生成图形验证码
- asp.net,C#验证码使用
- C# .Net短信验证
- 【.NET】VS2005 C#程序打包方法
- C#编写ASP.NET组件...
- 使用VS2005 C#编写随机数Random算法的代码
- VS2005 Addin续--编写C#代码统计插件
- 利用vs2005.net编写基于WinCE的DLL
- PB11.5例子Advanced GUI汉字显示问题
- Html - table - td 之 width和height奥妙之处
- SQL Server 日期格式化输出
- 对网络管理的见解
- readonly和const比较
- VS2005.NET C# 编写验证码:
- C# IList转换为datatable的方法
- 解决问题,缩小图片文件分辨率
- 浏览器安全问题导致activex不能使用的终极解决办法_悄悄俏俏
- 6.9substitute algorithm(替换算法)
- SP2-1503: 无法初始化 Oracle 调用界面
- Android SDK 源代码编译
- 云存储特性
- 通过ISA限制域内用户访问网页视频