求 类似于CSDN用户登录的验证码控件

zsz1001 2010-05-25 02:26:42
求 类似于CSDN用户登录的验证码控件 最好是C#的。
先谢谢了。
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsz1001 2010-05-25
  • 打赏
  • 举报
回复
谢谢 gs670gs,我把你的代码改了一下。才是我想要的

谢谢各位
a124819202 2010-05-25
  • 打赏
  • 举报
回复
网上找段代码一粘贴就OK了
zsz1001 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gs670gs 的回复:]
你弄下,这个一定是可以的,我就是这么做的
[/Quote]
好的 我试试。

谢谢各位
悔说话的哑巴 2010-05-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/areshh/archive/2009/05/13/4176335.aspx
小黑哥gs 2010-05-25
  • 打赏
  • 举报
回复
你弄下,这个一定是可以的,我就是这么做的
小黑哥gs 2010-05-25
  • 打赏
  • 举报
回复
我说下我做的思路,先在一个Common类里面写我给你的这个代码
public class ImagePage : System.Web.UI.Page
{
/// <summary>
/// 随机码认证
/// </summary>
/// <param name="code">生成认证长度</param>
public void DrawImage(int code)
{
Session["CheckCode"] = Common.Rand.Number(code);
CreateImages(Session["CheckCode"].ToString());
}
/// <summary>
/// /// 生成验证图片
/// /// </summary>
/// /// <param name="checkCode">验证字符</param>
protected void CreateImages(string checkCode)
{
int iwidth = (int)(checkCode.Length * 15);
System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 30);
Graphics g = Graphics.FromImage(image);
g.Clear(Color.LightCyan);
//定义颜色
Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple, Color.SkyBlue };
//定义字体
string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体", "Comic Sans MS" };
Random rand = new Random();
//随机输出噪点
for (int i = 0; i < 150; i++)
{
int x = rand.Next(image.Width);
int y = rand.Next(image.Height);
g.DrawPie(new Pen(Color.LightGray, 0), x, y, 6, 6, 1, 1);
}

//输出不同字体和颜色的验证码字符
for (int i = 0; i < checkCode.Length; i++)
{
int cindex = rand.Next(7);
int findex = rand.Next(6);
Font fs_font = new System.Drawing.Font(font[findex], 14, System.Drawing.FontStyle.Bold);
Brush b = new System.Drawing.SolidBrush(c[cindex]);
int ii = 4;
if ((i + 1) % 2 == 0)
{
ii = 2;
}
g.DrawString(checkCode.Substring(i, 1), fs_font, b, 3 + (i * 12), ii);
}

//画一个边框
g.DrawRectangle(new Pen(Color.Red, 0), 100, 0, image.Width - 1, image.Height - 1);
//输出到浏览器
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();//Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();

}
}


然后你再写一个空页面,页面后台代码是
protected void Page_Load(object sender, EventArgs e)
{

DrawImage(5);
}
然后你登陆放水印图片的前台写这个
<script type="text/javascript" language="JavaScript">
var numkey = Math.random();
numkey = Math.round(numkey * 10000);
document.write("<img src=\"../../Image.aspx?k=" + numkey + "\" width=\"70\" onClick=\"this.src+=Math.random()\" alt=\"图片看不清?点击重新得到验证码\" style=\"cursor:pointer;\" height=\"23\" hspace=\"4\"");
</script>
这样一切就搞定了
subxli 2010-05-25
  • 打赏
  • 举报
回复
链接的其实就是一个网页。那网页就一张验证码图片
wuyq11 2010-05-25
  • 打赏
  • 举报
回复
WebValidates
http://smark.codeplex.com/

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧