asp.net 简易生成注册码(数字+大小写字母)_asp.net教程-查字典教程网
asp.net 简易生成注册码(数字+大小写字母)
asp.net 简易生成注册码(数字+大小写字母)
发布时间:2016-12-29 来源:查字典编辑
摘要:如果有哪里看不懂的,请留言哦生成随机码类:SigowayRandom.cs复制代码代码如下:usingSystem;namespaceRon...

如果有哪里看不懂的,请留言哦

生成随机码类:SigowayRandom.cs

复制代码 代码如下:

using System;

namespace RongYi.Model.Common

{

/// <summary>

/// SigowayRandom 的摘要说明

/// </summary>

public class SigowayRandom

{

#region 获取校验码

/// <summary>

/// 获取校验码

/// </summary>

/// <returns>校验码字符数组</returns>

public static string[] GetCheckCode()

{

string[] strCheckCode = new string[4];

// 已系统时间毫秒为随机种子

int nSeed = Convert.ToInt16(DateTime.Now.Millisecond);

Random random = new Random(nSeed);

// 产生0-9随机数

strCheckCode[0] = Convert.ToString(random.Next(1, 10));

// 产生a-z、A-Z随机字母

strCheckCode[1] = SigowayRandom.GetLetter(random);

strCheckCode[2] = Convert.ToString(random.Next(1, 10));

strCheckCode[3] = SigowayRandom.GetLetter(random);

// 返回校验码

return strCheckCode;

}

#endregion

#region 获取字母,区分大小写

/// <summary>

/// 获取字母,区分大小写

/// </summary>

/// <returns>大小写字母</returns>

private static string GetLetter(Random random)

{

// 随机数

int nChar = random.Next(65, 122);

// 非字母ASCII段

if (nChar >= 91 && nChar <= 96)

{

nChar -= 6;

}

return Convert.ToString((char)nChar);

}

#endregion

}

}

绘制校验码类:SigowayDraw.cs

复制代码 代码如下:

using System.Drawing;

using System.Drawing.Imaging;

using System.Web;

namespace RongYi.Model.Common

{

/// <summary>

/// SigowayDraw 的摘要说明

/// </summary>

public class SigowayDraw

{

#region 构造方法

/// <summary>

/// 构造方法

/// </summary>

public SigowayDraw() { }

#endregion

#region 画校验码

/// <summary>

/// 画校验码

/// </summary>

/// <returns>校验码</returns>

public string DrawString()

{

// 设置字体

Font drawFont = new Font("Arial", 10);

// 创建位图元素

Bitmap objBitmap = new Bitmap(50, 20);

// 创建画图对象

Graphics objGraphics = Graphics.FromImage(objBitmap);

// 设置画布背景色

objGraphics.Clear(Color.White);

// 获取随机字符串

string[] strDrawString = SigowayRandom.GetCheckCode();

// 画字符串

objGraphics.DrawString(strDrawString[0], drawFont, new SolidBrush(Color.Purple), 1, 2);

objGraphics.DrawString(strDrawString[1], drawFont, new SolidBrush(Color.Green), 12, 2);

objGraphics.DrawString(strDrawString[2], drawFont, new SolidBrush(Color.Red), 24, 2);

objGraphics.DrawString(strDrawString[3], drawFont, new SolidBrush(Color.SteelBlue), 35, 2);

// 画干扰线

objGraphics.DrawLine(Pens.Silver, 5, 10, 40, 3);

objGraphics.DrawLine(Pens.Gray, 10, 5, 45, 15);

objGraphics.DrawLine(Pens.HotPink, 15, 20, 30, 10);

objGraphics.DrawLine(Pens.LightPink, 10, 15, 35, 20);

// 把图像画到位图对象中

objGraphics.DrawImage(objBitmap, 0, 0);

// 设置保存图片路径及名字

string strFile = HttpRuntime.AppDomainAppPath.ToString() + "/Resource/img/CheckCode.gif";

// 输出文件

objBitmap.Save(strFile, ImageFormat.Gif);

// 连接校验码字符串

string strCheckCode = string.Empty;

foreach (string strTemp in strDrawString)

{

strCheckCode += strTemp;

}

// 返回校验码

return strCheckCode;

}

#endregion

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类