温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:达达ASP.NET简单新闻发布源码
当前文件路径:DaDaNews/Admin/Validata.aspx.cs

1using System; 2
using System.Data; 3
using System.Configuration; 4
using System.Collections; 5
using System.Web; 6
using System.Web.Security; 7
using System.Web.UI; 8
using System.Web.UI.WebControls; 9
using System.Web.UI.WebControls.WebParts; 10
using System.Web.UI.HtmlControls; 11
using System.Drawing; 12
using System.Drawing.Imaging; 13
14
public partial class Validata : System.Web.UI.Page 15
{ 16
protected void Page_Load(object sender, EventArgs e) 17
{ 18
Session["code"] = RandNum(4); 19
ValidateCode(Session["code"].ToString(), 40, 20, "黑体", 10, "#FFFFFF"); 20
} 21
22
/// <summary> 23
/// 该方法用于生成指定位数的随机数 24
/// </summary> 25
/// <param name="VcodeNum">参数是随机数的位数</param> 26
/// <returns>返回一个随机数字符串</returns> 27
private string RandNum(int VcodeNum) 28
{ 29
string Vchar = "0,1,2,3,4,5,6,7,8,9"; 30
string[] VcArray = Vchar.Split(',');//拆分成数组 31
string VNum = ""; 32
int temp = -1;//记录上次随机数值,尽量避避免生产几个一样的随机数 33
34
Random rand = new Random(); 35
//采用一个简单的算法以保证生成随机数的不同 36
for (int i = 0; i < VcodeNum; i++) 37
{ 38
if (temp != -1) 39
{ 40
rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks)); 41
} 42
43
int t = rand.Next(VcArray.Length - 1); 44
if (temp != -1 && temp == t) 45
{ 46
return RandNum(VcodeNum); 47
48
} 49
temp = t; 50
VNum += VcArray[t]; 51
} 52
return VNum; 53
} 54
55
/// <summary> 56
/// 生成图片并写入字符 57
/// </summary> 58
/// <param name="VNum">目标字符</param> 59
/// <param name="w">宽</param> 60
/// <param name="h">高</param> 61
/// <param name="font">字体文件</param> 62
/// <param name="fontSize">字体大小</param> 63
/// <param name="bgColor">图片背景颜色</param> 64
private void ValidateCode(string VNum, int w, int h, string font, int fontSize, string bgColor) 65
{ 66
Bitmap Img = new Bitmap(w, h);//生成图像的实例 67
Graphics g = Graphics.FromImage(Img);//从Img对象生成新的Graphics对象 68
g.Clear(ColorTranslator.FromHtml(bgColor));//背景颜色 69
Font f = new Font(font, fontSize);//生成Font类的实例 70
SolidBrush s = new SolidBrush(Color.Black);//生成笔刷类的实例 71
g.DrawString(VNum, f, s, 3, 3);//将VNum写入图片中 72
Img.Save(Response.OutputStream, ImageFormat.Jpeg);//将此图像以Jpeg图像文件的格式保存到流中 73
Response.ContentType = "image/Jpeg"; 74
//回收资源 75
g.Dispose(); 76
Img.Dispose(); 77
Response.End(); 78
} 79
80
} 81





}
}