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

动态显示验证码怎么实现?

发布网友 发布时间:2022-04-23 07:35

我来回答

2个回答

热心网友 时间:2022-04-18 08:51

我做的是ASP.NET的你看一下,如何。生成GIF后再到前台绑定到图片或图片按钮上。就可以。步骤:1先新建一个【一般处理程序】,找一下,后缀名为 ashx (我生成的是:Handler.ashx)2.把下面源码贴上去(替换整个页面)。3 A 】 生成图片方式: <asp:Image ID="Image1" runat="server" ImageUrl="~/Handler.ashx" />b】 生成图片按钮方式(此方式可以通过点击图片刷新验证码):
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Handler.ashx" />4.你可以在你的绑定页面里通过Session[strIdentify]取得图片生成的文字。从而进行比较。///下面是源码 <%@ WebHandler Language="C#" Class="ValidateImageHandler" %>using System;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;/// <summary>
/// ValidateImageHandler 生成网站验证码功能
/// </summary>
public class ValidateImageHandler : IHttpHandler, IRequiresSessionState
{
int intLength = 5; //长度
string strIdentify = "Identify"; //随机字串存储键值,以便存储到Session中
public ValidateImageHandler()
{
} /// <summary>
/// 生成验证图片核心代码
/// </summary>
/// <param name="hc"></param>
public void ProcessRequest(HttpContext hc)
{
//设置输出流图片格式
hc.Response.ContentType = "image/gif";

Bitmap b = new Bitmap(200, 60);
Graphics g = Graphics.FromImage(b);
g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60);
Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
Random r = new Random(); //合法随机显示字符列表
string strLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
StringBuilder s = new StringBuilder();

//将随机生成的字符串绘制到图片上
for (int i = 0; i < intLength; i++)
{
s.Append(strLetters.Substring(r.Next(0, strLetters.Length - 1), 1));
g.DrawString(s[s.Length - 1].ToString(), font, new SolidBrush(Color.Blue), i * 38, r.Next(0, 15));
} //生成干扰线条
Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
for (int i = 0; i < 10; i++)
{
g.DrawLine(pen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
}
b.Save(hc.Response.OutputStream, ImageFormat.Gif);
hc.Session[strIdentify] = s.ToString(); //先保存在Session中,验证与用户输入是否一致
hc.Response.End();

}

/// <summary>
/// 表示此类实例是否可以被多个请求共用(重用可以提高性能)
/// </summary>
public bool IsReusable
{
get
{
return true;
}
}
}

热心网友 时间:2022-04-18 10:09

把文字用画图画出来保存到一个GIF文件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 验证码的工作原理是怎样的? 验证码都有哪几种形式? 行为式验证码的前景如何? 各类手机APP应用短信验证码怎么实现的? 验证码是怎么实现的 节气门多少公里清洗一次呢 请问汽车节气门多久清洗一次? 节气门多久清洗一次?如何清洗? 节气门清洗要看时间吗,多久清洗一次比较好? 现代途胜节气门多长时间需要清洗? 美菱冰箱冷冻板戳坏了一个洞怎么办,漏气了,是塑料板的 美菱雅典娜bcd450ze9n冰箱冷藏室最下面有个小孔是排水孔里面的水排... 美菱86A冰箱里有个小孔是流水用的吗 美菱雅典娜双门冰箱冷冰室的冷冰管搞了一个小洞怎么维修? 美菱三门冰箱中间一格边有一个小孔是什么用除? 美菱冰箱的冷藏箱里有一个小洞是用来做什么的 怪物猎人玩些什么? 请问怪物猎人是怎么个玩法 怪物猎人系列 逆变器输出波形有SPWM载波周期的毛刺,怎么解决呢 极验验证码是怎么做到识别人和恶意程序的行为的?可能吗? 为什么手机经常会自动弹出新浪微博的话题页面 vivo手机为什么自动打开新浪微博? 为什么手机经常会自动弹出新浪微博的话题页面? 请问各位高手~我的新浪微博手机客户端总是自动弹出 是什么原因? 在访问某些网址时,网页会不停的自动打开手机的app,如微博,支付宝,淘宝等app,如何解决? 手机锁屏后再打开会弹出微博是怎么回事 新浪微博九版同发说的签到功能是什么意思? 现在新浪微博需要签到吗?还是只要登录就会自动签到 iPhone新浪微博app点了举报用户界面就一直疯狂弹出别的app之后就会自动进入tb?? 怎么知道木瓜熟不熟? 怎么辨识木瓜是否熟了? 木瓜怎么算熟了?怎么吃? 没熟就从树上摘下来的木瓜怎样才能熟 情侣黄钻和红钻有什么用? 情侣黄钻和黄钻有什么区别? 怎么冲情侣黄钻 手机qq怎样向好友发出开情侣黄钻的邀请 QQ中的钻 情侣黄钻能看被挡访客么