c#

位置:IT落伍者 >> c# >> 浏览文章

C#创建简单的验证码


发布日期:2024年06月06日
 
C#创建简单的验证码

首先创建一个CLASS类然后需要add Reference的方式添加 SystemDrawing(画画的类)

方法代码如下

/**//// <summary>

/// 定义显示的随机字符

/// </summary>

/// <param name=strList></param>

/// <returns></returns>

private string imageStr(char[] strList)

{

if (strList == null)

strList = ABCDEFGHIJKLMNOPQRSTUVWXYZToCharArray();

int codeLengh = ;

string radomCode = ;

Random r = new Random();

for (int i = ; i < codeLengh;i++)

{

radomCode += strList[rNext(strListLength)];

}

return radomCode;

}

/**//// <summary>

/// 创建随机验证字符的IMAGE并保存同时返回随机字符串

/// </summary>

/// <param name=iWidth>图片宽度 默认为</param>

/// <param name=iHeight>图片高度 默认为</param>

/// <param name=font>字符字体 null时默认为 Arial FontStyleBold</param>

/// <param name=sb>字符颜色 null时默认为红</param>

/// <param name=ImagePath>需要保存的文件绝对路径</param>

/// <param name=strList>随即字符库 null时默认为AZ</param>

/// <returns>返回随机字符串</returns>

public string createImgWithStr(int iWidthint iHeightFont fontSolidBrush sb string ImagePathchar[] strList)

{

if (font == null)

font = new Font(Arial FontStyleBold);

if (sb == null)

sb = new SolidBrush(ColorRed);

if (iWidth == )

iWidth = ;

if (iHeight == )

iHeight = ;

//得到随机字符串

string imageString = imageStr(strList);

//定义横向竖向都画跳线

int lineCount = ;

支笔用来画线条的

Pen pen = new Pen(ColorGold );

Pen pen = new Pen(ColorBlack );

//定义图片

Bitmap image = new Bitmap(iWidth iHeight);

//跟JME一样的画笔

Graphics g = GraphicsFromImage(image);

//先画背景色 当然你可以自定义下

gClear(ColorTranslatorFromHtml(#FFF));

//确定写字的落点

Rectangle rect = new Rectangle( iWidth iHeight);

Random r = new Random();

//默认随机画横向竖向条线

for(int i =;i<lineCount;i++)

{

Point p = new Point( rNext(iHeight));

Point p = new Point(iWidth rNext(iHeight));

Point p = new Point(rNext(iWidth) );

Point p = new Point(rNext(iWidth) iHeight);

gDrawLine(pen p p);

gDrawLine(pen p p);

}

//写字

gDrawString(imageString font sb rect);

//删除源文件

if (FileExists(ImagePath))

FileDelete(ImagePath);

//保存文件我定义为jpeg格式

imageSave(ImagePath SystemDrawingImagingImageFormatJpeg);

//释放资源

gDispose();

imageDispose();

return imageString;

}

另外我在实际运用过程中总是发现重新生成了图片但是显示却还是以前那张最后在网上找到了答案原本的<aspImage ID=Image runat=server ImageUrl=~/ajpg />改成<aspImage ID=Image runat=server ImageUrl=~/ajpg?temp=<%= DateTimeNowTicks%> />就能够自动更新了……另外代码段中的<%= DateTimeNowTicks%> 不能改成<%=DateTimeNowTicks%> 少了一个空格就挂了谁能告诉我为什么呢??

               

上一篇:.NET中Class,Abstract and Interfa选择[1]

下一篇:c#与算法--快速排序