All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
DataGrid和DataList中CommandButton的问题_[Asp.Net教程]
SQL Server和Oracle常用函数区别_[SQL Server教程]
PHP实例:用PHP程序实现随机广告图片显示_[PHP教程]
PHP日期和时间函数使用技巧实例_[PHP教程]
net得到本地电脑基本信息的简单方法_[Asp.Net教程]
SQL,Server补丁安装常见问题详解_[SQL,Server教程]
GridView删除记录时增加确认提示框_[Asp.Net教程]
利用XMLHTTP从其他页面获取网页数据_JavaScript技术_编程技术
理解掌握ASP.NET与客户端缓存之HTTP协议_.net资料_编程技术
AJAX实例入门_[AJAX教程]
Reading number is top 10 pictures
A man's favorite things15
随便发几张图
Exquisite decoration is not paying too much2
真正的国产-非模拍 贵在是真实2
Look for from human art net, is good--2
银行20年后可能消失
原子弹轰炸长崎的珍贵照片
girl of HuNan name is LiXiang(湖南辣姐李湘的写真)
西班牙山村小景3
中国处女图鉴2
Download software ranking
C#高级编程(第4版)
Jinling thirteen stock
Tram sex maniac 2 (H) rar bag8
Boxer's Top ten classic battle2
WebService在.NET中的实战应用教学视频 → 第4集
Unix video tutorial5
Tram sex maniac 2 (H) rar bag18
Tram sex maniac 2 (H) rar bag6
I for your crazy
虚拟机5.5.3版
delv published in(发表于) 2014/1/24 9:10:16 Edit(编辑)
Login控件也可添加图文验证码_[Asp.Net教程]

Login控件也可添加图文验证码_[Asp.Net教程]

Login控件也可添加图文验证码_[Asp.Net教程]























对asp.net提供的Login控件进行扩展,在密码后面加一图文验证功能以防止自动注册程序。
1.添加imageValidate.aspx,在头部添加信息
<% Response.Buffer = true ;%>
<% Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);%>
<% Response.Expires = 0 ;%>
<% Response.CacheControl = "no-cache" ; %>
在imageValidate.aspx.cs中的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//生成4位的验证码
/*string tmp = RndNum(4);
HttpCookie cookie = new HttpCookie("ImageV", tmp);
//Response.Cookies["ImageV"].Value=tmp;
Response.Cookies.Add(cookie);
this.ValidateCode(tmp);*/

CreateCheckCodeImage(GenerateCheckCode());

}

private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;

System.Random random = new Random();

for (int i = 0; i < 5; i++)
{
number = random.Next();

if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));

checkCode += code.ToString();
}
Session["CheckCode"] = checkCode;


//Response.Cookies.Add(new HttpCookie("CheckCode", 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 * 12.5)), 22);
Graphics g = Graphics.FromImage(image);

try
{
//生成随机生成器
Random random = new Random();

//清空图片背景色
g.Clear(Color.White);

//画图片的背景噪音线
for (int i = 0; i < 25; i++)
{
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++)
{
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.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
这就是生成验证码的页面
2.将这页面添加到login控件中:
拖曳一Login控件,将之切换到模式下,在Html源文件中在表格中密码那行后添加:






验证码:





















其中ImageUrl="~/public/imageValidate.aspx“ 的imageValidate.aspx指的就是我们第一步建立的文件。
3.在login控件的authenticate事件中加入代码
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
TextBox txtImage = Login1.FindControl("txtImgValid") as TextBox;


if (Session["CheckCode"] == null)
{
Response.Write("");
e.Authenticated = false;
return;
}

if (String.Compare(Session["CheckCode"] .ToString(),txtImage.Text,true)!=0)
{
Response.Write("");
e.Authenticated = false;
return;
}

e.Authenticated = true;


}

单击登录按钮后顺便将session清空
protected void LoginButton_Click(object sender, EventArgs e)
{
Session["CheckCode"] = null;
}
运行结果如图:


来源:网络













































添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.