- 浏览: 7874094 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
namespace ASPNETAJAXWeb.ValidateCode.Page
{
public class ValidateCode:System.Web.UI.Page
{
private const double IMAGELENGTHBASE = 12.5;
private const int IMAGEHEIGTH = 22;
private const int IMAGELINENUMBER = 25;
private const int IMAGEPOINTNUMBER = 100;
public static string VALIDATECODEKEY = "VALIDATECODEKEY";
private int length = 4;
private string code = string.Empty;
/// <summary>
/// 获取或设置验证码长度,默认值为4。
/// </summary>
public int Length
{
get
{
return length;
}
set
{
length = value;
}
}
/// <summary>
/// 获取验证码
/// </summary>
public string Code
{
get
{
return Code;
}
}
public ValidateCode()
{
}
protected override void OnLoad(EventArgs e)
{
CreateValidateImage(length);
}
/// <summary>
/// 创建随机验证码
/// </summary>
/// <param name="length">验证码长度</param>
/// <returns></returns>
public string CreateCode(int length)
{
if(length <= 0) return string.Empty;
///创建一组随机数,并构成验证码
Random random = new Random();
StringBuilder sbCode = new StringBuilder();
for(int i = 0; i < length; i++)
{
sbCode.Append(random.Next(0,10));
}
///保存验证码到Session对象中
code = sbCode.ToString();
Session[VALIDATECODEKEY] = code;
return code;
}
/// <summary>
/// 创建验证码的图片和验证码
/// </summary>
/// <param name="length">验证码的长度</param>
public void CreateValidateImage(int length)
{ ///创建验证码
code = CreateCode(length);
///创建验证码的图片
CreateValidateImage(code);
}
/// <summary>
/// 创建验证码的图片和验证码
/// </summary>
/// <param name="code">验证码</param>
public void CreateValidateImage(string code)
{
if(string.IsNullOrEmpty(code) == true) return;
///保存验证码到Session对象中
Session[VALIDATECODEKEY] = code;
///创建一个图像
Bitmap image = new Bitmap((int)Math.Ceiling((code.Length * IMAGELENGTHBASE)),IMAGEHEIGTH);
Graphics g = Graphics.FromImage(image);
///随机数生成器
Random random = new Random();
try
{
///清空图像,并指定填充颜色
g.Clear(Color.White);
///绘制图片的干扰线
int x1,x2,y1,y2;
for(int i = 0; i < IMAGELINENUMBER; i++)
{
x1 = random.Next(image.Width);
y1 = random.Next(image.Height);
x2 = random.Next(image.Width);
y2 = random.Next(image.Height);
///绘制干扰线
g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2);
}
///绘制验证码
Font font = new Font("Tahoma",12,FontStyle.Bold | FontStyle.Italic);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),
Color.Blue,Color.DarkRed,1.2f,true);
g.DrawString(code,font,brush,2.0f,2.0f);
///画图片的前景噪音点
int x,y;
for(int i = 0; i < IMAGEPOINTNUMBER; i++)
{
x = random.Next(image.Width);
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);
///保存图片的内容到流中
MemoryStream ms = new MemoryStream();
image.Save(ms,ImageFormat.Gif);
///输出图片
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{ ///释放占有的资源
g.Dispose();
image.Dispose();
}
}
}
}
2 搞一个validatecode.asp页
<%@ Page Language="C#" AutoEventWireup="false" Inherits="ASPNETAJAXWeb.ValidateCode.Page.ValidateCode" %>
3 在要用验证码的地方,引用编译好的DLL
4 要用的地方
<tr bgcolor="white">
<td>验 证 码:</td>
<td>
<asp:TextBox ID="tbCode" runat="server" SkinID="tbSkin" Width="80px"></asp:TextBox>
<asp:Image ID="imgCode" runat="server" ImageUrl = "~/ValidateCode.aspx" />
</td>
</tr>
5 逻辑代码
//判断是否创建了验证吗
if(Session[ValidateCode.VALIDATECODEKEY] == null) return;
///验证验证码是否相等
if(tbCode.Text != Session[ValidateCode.VALIDATECODEKEY].ToString())
{
lbMessage.Text = "验证码输入错误,请重新输入。";
return;
}
发表评论
-
.NET 嵌入式版4.2发布:关键更新抢先看
2012-02-22 14:57 1846作为.NET家族的一员,.Net Micro Framewor ... -
asp.net中模拟测试smtp发信
2011-03-20 18:47 1886在asp.net 中,有时要测试发信SMTP,但如果在单元测试 ... -
vs.net 2010两个数据库方面的好工具
2011-02-14 11:47 1863今天发现vs.net 2010在处理数据库方面的两个不错的工具 ... -
将gridview导出到excel,world,pdf的小结
2011-02-07 22:47 2965下面小结下把gridview的数据导出到excel,world ... -
gridviewtips1:gridview的页脚中的加亮显示和页数显示
2011-01-27 09:58 2364在asp.net 中,要经常显示gridview中的页数,并且 ... -
asp.net 4中的HTML过滤的一个新特性
2011-01-21 09:47 1870在asp.net 4中,有个新增加的对HTML过滤,防止XSS ... -
在vs.net 2010中使用重构方法
2011-01-20 16:55 2172在vs.net 2010中,可以很方便地对一些冗余的代码进行重 ... -
一个比较好的.net 3.5的异常报告类
2011-01-10 14:51 1958发现了一个比较好的异常报告类,其中用到了.net 3.5以上的 ... -
asp.net 4.0中menu菜单的改进
2011-01-03 22:47 2581在asp.net 3.5时,如果用menucontrol时,使 ... -
asp.net 4中的新特性之一:控制URL长度
2010-09-14 23:06 2398asp.net 4中的新特性之一:控制URL长度。在ASP.N ... -
vs.net 2010中使用code snippets
2010-09-09 20:58 1588其实在vs.net 2010中,使用code snippets ... -
百万开发者拥戴!七大.NET著名开源项目
2010-09-07 09:42 2300新翻译了篇帖子,原文发表在 http://publish.i ... -
asp.net 2010中jquery调用webservice
2010-08-30 22:21 2763在asp.net 2010中,在建立web应用时,默认已经在s ... -
.net中的placeholder控件
2005-01-15 20:00 1946最近留意到有人问,NET中的placeholder控件用来做什 ... -
asp.net 中一次性更新DATAGRID中所有记录
2005-01-15 20:03 950在asp.net中,如何一次性 ... -
在asp.net 中实现只允许数字输入的文本框
2005-01-15 20:18 1504在asp.net 中实现只允许数字输入的文本框,其实是十分简单 ... -
一个重构代码的小技巧
2005-01-16 21:58 1146刚开始接触重构,听就听的多了,理论没认真看过,不过今天发现,将 ... -
防止SQL注入攻击
2005-02-05 14:42 1157看了本期ASP。NET杂志里的一篇讲防止SQL注入攻击的文章, ... -
优秀.net 控件包介绍
2005-02-18 19:47 1686在oday上看到得,将介绍摘录在这里 NetAdvantage ... -
vs.net 2005中的ConfigurationManager
2005-05-06 18:11 1652vs.net 2005中的ConfigurationManag ...
相关推荐
HandlerSample 图片的处理程序以及防止盗链的方法 FileHandlerSample 文件下载示例 <br>第13章(\C13) 示例描述:本章示例展现了在ASP.NET2.0中实现在线服务的功能。 OnlineService 复杂的...
HandlerSample 图片的处理程序以及防止盗链的方法 FileHandlerSample 文件下载示例 <br>第13章(\C13) 示例描述:本章示例展现了在ASP.NET2.0中实现在线服务的功能。 OnlineService 复杂的...
精通ASP.NET2.0典型模块设计与实现,涵盖ASP.NET开发时常用的基本功能模块的设计与实现,包括:用户登录功能、在线投票、RSS的实现及应用、在线编辑器的原理及实现、在线支付、文件的上传和下载、电子邮件的发送和...
ASP.NET 2.0+SQL Server 2005全程指南 目录 基础篇 第1章 ASP.NET概述及环境配置 1.1 认识ASRNET 1.1.1 .NET Framework框架 1.1.2 ASP.NET功能与特性 1.1.3 ASP.NET与ASP的区别 1.2 搭建ASP.NET开发环境 1.2.1...
用ASP.NET2.0实现登录验证模块 包括用户注册,登录,系统对用户的认证和显示
示例描述:本章实现了网上选课系统,通过该系统,学校不同角色的用户可以通过网路完成选课系统功能:管理员通过该系统实现对学生、教师、课程的添加和维护和学生成绩的维护;教师通过该系统实现查看课程选修情况和...
2.ASP.NET.2.0.高级编程(第4版) [1/7] 原书名: Professional ASP.NET 2.0 原出版社: Wrox 作者:(美)Bill Evjen, Scott Hanselman, Farhan Muhammad [同作者作品] [作译者介绍] 译者: 李敏波[同译者作品] ...
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
1.用户登录的验证程序 2.ASP.NET 的缓存功能 ...8.ASP.NET2.0中的防盗链技术 9.如何实现站内和站外的搜索 10.聊天室模块的实现 11.实现了留言板模块 12.新闻发布系统 13.在线考试系统 14.创建和使用服务
第九节验证控件三 Validating Group验证控件分组 网上报名系统注册模块 控件使用和验证实例
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
由于管理员没有安装SQL2005,所以这个控件源码并没有做过测试,希望那位网友测试或者用过后觉得满意的话,可以在源码评论里发表一下你的宝贵...注意:采用的是Sql2005数据库为《asp.net2.0典型模块设计与实现》随书源码
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换 ASP.NET2.0 ObjectDataSource的使用详解(1) ASP.NET...
此DEMO包括用户的登录,注册,编辑,删除,已经用户登录的前台和后台验证,是ASP.MVC2.0的项目,供大家参考学习
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
全书共分29章,包括ASP.NET 2.0开发入门、C#语言基础、ASP.NET的内置对象、ASP.NET 2.0 Web常用控件、数据验证技术、母版页、主题、数据绑定、使用ADO.NET操作数据库、数据控件、站点导航控件、Web用户常用控件、ASP...
4:该系统使用了ASP.NET2.0的一些新的控件有"母板页,Web用户控件,TreeView,验证控件"等等. 5:前台登录的学号:501022016 身份:寝室长 密码:zhangping 后台登录的学号:562873726 密码:zhangping 默认管理员...