DesignCoding Studio
一切只要去努力!
博客
相册
关于作者
定制颜色:
[ 显示模式:
摘要
|
列表
]
2008-01-23
C# 验证码
时间: 2008-01-23 22:24:54 作者: admin 阅读次数: 1011
字体大小:
小
中
大
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;
namespace
DesignCoding.Blog.Web.Common
...
{
public
partial
class
Validate : BasePage
...
{
protected
void
Page_Load(
object
sender, EventArgs e)
...
{
InitPage();
this
.CreateCheckCodeImage(GenerateCheckCode());
}
private
string
GenerateCheckCode()
...
{
string
CodeName
=
"
CheckCode
"
;
if
(Request.QueryString[
"
ID
"
]
!=
null
&&
!
Request.QueryString[
"
ID
"
].ToString().Equals(
""
))
...
{
CodeName
=
"
CheckCode
"
+
Request.QueryString[
"
ID
"
].ToString();
}
int
number;
char
code;
string
checkCode
=
String.Empty;
System.Random random
=
new
Random();
for
(
int
i
=
0
; i
<
6
; i
++
)
...
{
number
=
random.Next();
if
(number
%
2
==
0
||
number
%
2
!=
0
)
//
加上这个" || number % 2 != 0",验证码只有数字
code
=
(
char
)(
'
0
'
+
(
char
)(number
%
10
));
//
0
else
code
=
(
char
)(
'
A
'
+
(
char
)(number
%
26
));
//
26
checkCode
+=
code.ToString();
}
//
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
SetSession(CodeName,checkCode);
return
checkCode;
}
private
void
CreateCheckCodeImage(
string
checkCode)
...
{
if
(checkCode
==
null
||
checkCode.Trim()
==
String.Empty)
return
;
System.Drawing.Bitmap image
=
new
System.Drawing.Bitmap((
int
)Math.Ceiling((checkCode.Length
*
11.3
)),
22
);
//
12.5
Graphics g
=
Graphics.FromImage(image);
try
...
{
//
生成随机生成器
Random random
=
new
Random();
//
清空图片背景色
g.Clear(Color.AliceBlue);
//
//
画图片的背景噪音线
for
(
int
i
=
0
; i
<
25
; i
++
)
//
25
...
{
int
x1
=
random.Next(image.Width);
int
x2
=
random.Next(image.Width);
int
y1
=
random.Next(image.Height);
int
y2
=
random.Next(image.Height);
g.DrawLine(
new
Pen(Color.Silver), x1, y1, x2, y2);
}
Font font
=
new
System.Drawing.Font(
"
Arial
"
,
12
, (System.Drawing.FontStyle.Bold
|
System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush
=
new
System.Drawing.Drawing2D.LinearGradientBrush(
new
Rectangle(
0
,
0
, image.Width, image.Height), Color.Blue, Color.DarkRed,
1.2f
,
true
);
g.DrawString(checkCode, font, brush,
2
,
2
);
//
画图片的前景噪音点
for
(
int
i
=
0
; i
<
100
; i
++
)
//
100
...
{
int
x
=
random.Next(image.Width);
int
y
=
random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//
画图片的边框线
g.DrawRectangle(
new
Pen(Color.Silver),
0
,
0
, image.Width
-
1
, image.Height
-
1
);
System.IO.MemoryStream ms
=
new
System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.Expires
=
-
9999
;
Response.AddHeader(
"
pragma
"
,
"
no-cache
"
);
Response.AddHeader(
"
cache-ctrol
"
,
"
no-cache
"
);
Response.ClearContent();
Response.ContentType
=
"
image/Gif
"
;
Response.BinaryWrite(ms.ToArray());
}
finally
...
{
g.Dispose();
image.Dispose();
}
}
}
}
文章来自:
互联网
引用通告:
查看所有引用 | 我要引用此文章
Tags:
C# Validate
查看评论(1)
发表评论
Web
正在加载中...
信息提示!
发表评论
昵称:
E-Mail (可选):
主页 (可选):
验证码:
内容: (评论提交后不可编辑)
简介
webmaster#designcoding.com
将#替换为@即可
分类
Web (12)
JavaScript (10)
C# (7)
T-SQL (9)
Java (3)
VB6.0 (1)
生活锁碎 (1)
图片故事 (1)
个人日记 (7)
Div+Css (11)
相册
统计
日志:
62
篇
评论:
32
个
访问:
119142
次
在线:
4
人
建站日期:
2007-12-30
阅读排行榜
Java Table的用法(2345)
如何开启Vista Aero的效果(2137)
一个很耐玩的Flash游戏,看(1930)
JS 删除Table中的一行(1929)
移动网关CMPP3.0(原码)(1694)
VB中MDI窗体中如何判断一个(1671)
自定义控件OutLookBar (1470)
GridView导出Excel文件 (1274)
看到一个令人兴奋的 Javasc(1248)
C# 验证码(1011)
最新评论
给我发一分吧,现在公司要做短信...
--飞天鼠
能不能也给我一份呀,谢谢.现在公
--来去
<script>alert(''弹出!!...
--aa
很囧,很强大。哈哈。。过了年再
--兰陵笑笑生
哈哈。终于又见更新。
--long
存档
2007年10月 (1)
2007年11月 (8)
2007年12月 (3)
2007年04月 (3)
2007年06月 (3)
2007年07月 (3)
2007年09月 (7)
2008年01月 (4)
2008年11月 (1)
2008年02月 (5)
2008年03月 (11)
2008年04月 (6)
2009年02月 (1)
2009年03月 (1)
2009年06月 (2)
2009年07月 (1)
2009年08月 (1)
2010年03月 (1)
链接
代码设计
杏林
CSDN
GWazy
支持
其它
Rss Feed
管理