问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

跪求+高分!!.net网站怎样添加验证码

发布网友 发布时间:2022-11-11 11:38

我来回答

5个回答

热心网友 时间:2024-10-24 10:44

第一步:添加一个页面,页面代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckCode.aspx.cs" Inherits="CheckCode" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>

</div>
</form>
</body>
</html>
第二步:添加页面的cs代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;
//这是一个生成验证码的网页
public partial class CheckCode : System.Web.UI.Page
{
private string GenerateCheckCode()
{
int num;
char code;
string checkCode = string.Empty;
Random random = new Random();
for (int i = 0; i < 6; i++)//循环次数决定验证码的位数
{
num = random.Next();
if (num % 2 == 0)
{
code = (char)('0' + (char)(num % 10));
}
else
{
code = (char)('A' + (char)(num % 26));
}

checkCode += code.ToString();
}
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
return checkCode;
}

protected void Page_Load(object sender, EventArgs e)
{
CreateCheckCodeImg(GenerateCheckCode());
}

private void CreateCheckCodeImg(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
return;
Bitmap img = new Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);

Graphics g = Graphics.FromImage(img);
try
{
Random random = new Random();
g.Clear(Color.White);

//画图片的背景线
for (int i = 0; i < 2; i++)
{
int x1 = random.Next(img.Width);
int x2 = random.Next(img.Width);
int y1 = random.Next(img.Width);
int y2 = random.Next(img.Width);
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
}

//画出指定的字符
Font font = new Font("Arial", 12, (FontStyle.Bold));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, img.Width, img.Height), Color.Blue, Color.Red, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);

//画图片的前景噪点
for (int i = 0; i < 100; i++)
{
int x = random.Next(img.Width);
int y = random.Next(img.Height);
img.SetPixel(x, y, Color.FromArgb(random.Next()));
}
g.DrawRectangle(new Pen(Color.Silver),0,0,img.Width-1,img.Height-1);
System.IO.MemoryStream ms=new System.IO.MemoryStream();
img.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType="image/Gif";
Response.BinaryWrite(ms.ToArray());

}
finally
{
g.Dispose();
img.Dispose();
}
}

}

第三步:在需要验证码的网页引用产生验证码的网页:
在你需要调用验证码的网页中添加一个<img>标签,将img标签的src设置成刚刚新添加的那个aspx!比如<img alt="验证码" src="CkeckCode.aspx"></img>
下面是刷新功能:
你可以把img标签和一个linkbutton一起加入到updatepanel中,然后生成一个linkbutton的click事件,不用在里面写任何代码的,就可以达到刷新验证码的效果了.

最后一步:验证验证码:
在验证页面里添加以下代码:
HttpCookie cookie = Request.Cookies["CheckCode"];

if (cookie.Value == tbYanZM.Text)
{
Response.Write("...验证码正确");

}

热心网友 时间:2024-10-24 10:44

你需要有验证码的代码
需要学习GDI+
通过程序画出来的

具体的你加我吧
27244842

热心网友 时间:2024-10-24 10:45

一般网上的验证码是一个图片的src='*.aspx'指向一个这个的地址,类似于这样的*.aspx可以到网上下载,你只要稍做修改即可

热心网友 时间:2024-10-24 10:45

从网上down一个验证码的页面,然后img指向改页面
点击的时候重新指向一下,最好网址后面加个随机数,有时候有缓存问题

热心网友 时间:2024-10-24 10:46

using System;
using System.Data;
using System.Configuration;
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;

/// <summary>
/// Coment 的摘要说明
/// </summary>
public class Coment
{
public Coment()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 实现随机验证码
/// </summary>
/// <param name="n">显示验证码的个数</param>
/// <returns>返回生成的随机数</returns>
public string RandomNum(int n) //
{
//定义一个包括数字、大写英文字母和小写英文字母的字符串
string strchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
//将strchar字符串转化为数组
//String.Split 方法返回包含此实例中的子字符串(由指定Char数组的元素分隔)的 String 数组。
string[] VcArray = strchar.Split(',');
string VNum = "";
//记录上次随机数值,尽量避免产生几个一样的随机数
int temp = -1;
//采用一个简单的算法以保证生成随机数的不同
Random rand = new Random();
for (int i = 1; i < n + 1; i++)
{
if (temp != -1)
{
//unchecked 关键字用于取消整型算术运算和转换的溢出检查。
//DateTime.Ticks 属性获取表示此实例的日期和时间的刻度数。
rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));
}
//Random.Next 方法返回一个小于所指定最大值的非负随机数。
int t = rand.Next(61);
if (temp != -1 && temp == t)
{
return RandomNum(n);
}
temp = t;
VNum += VcArray[t];
}
return VNum;//返回生成的随机数
}
}
至于刷新的就容易啦 就让它在运行一遍就行了!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 网站可以加验证码 成功人生六大基础 什么才是成功的基础? 做题慢怎么解决 学习效率总是很低 做作业慢怎么办 被骗2000有对方手机号可以报警吗 蚂蚁爬到床上寓意是什么? 地板进水鼓包怎样解决 建行信用卡有哪些业务? ...最初的业务功能?如果经办理可以再开通哪些业务功能? 下载钉钉用输入身份证吗 ...Smart Install),打印机被识别为大容量存储器,无法使用 请问电脑键盘上强退的键是哪几个组合键? 怎样在win10系统里硬盘分区 魔兽世界中外域的传送门在哪? 为什么康佳V985的手机会突然全部没声音了,我开始时只在网上下了游戏,然... 中科院(除去北京)v985(中流) 中兴v985的手机触屏局部失灵是什么原因 我的中兴v985花屏了,应该怎么办,求指点 我的中兴V985用了miui的rec清除所有数据之后无法进入系统了也无法挂载sy... 江苏消防工程师报考条件是什么? 为什么锦鲤入缸三天必死锦鲤鱼缸撒点食用盐行吗,锦鲤入缸危险期是几天... 为什么我每次买回来的锦鲤三四天就会至呢?刚买回来也没直接入缸,也没... 我为什么样金鱼 锦鲤 不超过三天都死了呢?缸子就是普通的圆形金鱼缸... 床房了七八年还回有甲醛吗 华为nova7pro控制中心怎么关闭 仲裁员是案件的当事人,能否把仲裁协议确定在他受聘的仲裁委员会? 货运从业资格证在哪办? 精华液的正确使用顺序,精华液的使用步骤是什么 精华在哪个步骤使用 精华在什么步骤使用 12月出生的羊宝宝如何取名 2020年12月25日出生的宝宝怎么起名寓意聪明受欢迎? 2020年12月26号出生的女宝宝五行缺木名字怎么起寓意聪明? 2020年十二月初一出生生辰八字取名方法 2020年12月31日出生的男孩子起名参考 怎么起名受欢迎 2020年十二月二十七出生的男孩如何起名沉稳大气好听 办理信用卡显示17个账户 蓝岸熊猫啤酒多少度 宜春生产的熊猫竹啤咋样? 杰克熊猫啤酒是3无产品吗