永发信息网

在验证码中没有定义session这个对象,我们如何让前台把验证码传到后台来判断他是否输入正确呢?

答案:2  悬赏:10  手机版
解决时间 2021-02-11 12:13
public partial class CreateCheckCode : System.Web.UI.Page
{
private string CreateCheckCodeString()
{ //定义用于验证码的字符数组
char[] AllCheckCodeArray ={ '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'};
//定义验证码字符串
string randomcode = "";
Random rd = new Random();
//生成4位验证码字符串
for (int i = 0; i < 4; i++)
randomcode += AllCheckCodeArray[rd.Next(AllCheckCodeArray.Length)];
return randomcode;
}
//生成验证码图片
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
//定义图片的宽度
int ImageWidth = 55;
//定义图片高度
int ImageHeigh = 22;
//定义字体,用于绘制文字
Font font = new Font("Arial", 12, FontStyle.Bold);
//定义画笔,用于绘制文字
Brush brush = new SolidBrush(Color.Black);
//定义钢笔,用于绘制干扰线
Pen pen1 = new Pen(Color.FromArgb(255, 100, 100), 0);//这里也可以直接获得一个现有的color对象如:Color.Gold.我是为了美观所以定义和下面一样
Pen pen2 = new Pen(Color.FromArgb(255, 100, 100), 0);//这里根据ARGB值定义获得了一个color对象
//创建一个图像
Bitmap BitImage = new Bitmap(ImageWidth, ImageHeigh);
//从图像获取一个绘画面
Graphics graphics = Graphics.FromImage(BitImage);
//清除整个绘图画面并用颜色填充
graphics.Clear(ColorTranslator.FromHtml("#F0F0F0"));//这里从HTML代码获取color对象
//定义文字的绘制矩形区域
RectangleF rect = new RectangleF(5, 2, ImageWidth, ImageHeigh);
//定义一个随机数对象,用于绘制干扰线
Random rand = new Random();
//生成两条横向的干扰线
for (int i = 0; i < 2; i++)
{
//定义起点
Point p1 = new Point(0, rand.Next(ImageHeigh));
//定义终点
Point p2 = new Point(ImageWidth, rand.Next(ImageHeigh));
//绘制直线
graphics.DrawLine(pen1, p1, p2);
}
//生成两条纵向的干扰线
for (int i = 0; i < 2; i++)
{
//定义起点
Point p1 = new Point(rand.Next(ImageWidth), 0);
//定义终点
Point p2 = new Point(rand.Next(ImageWidth), ImageHeigh);
//绘制直线
graphics.DrawLine(pen2, p1, p2);
}
//绘制验证码文字
graphics.DrawString(CreateCheckCodeString(), font, brush, rect);
//保存图片为gif格式
BitImage.Save(Response.OutputStream, ImageFormat.Gif);
//释放对象
graphics.Dispose();
BitImage.Dispose();
Response.End();
}
}
这是我从网上挡下来的我不知道怎么从前台使用请高手回答
最佳答案
在return 函数前面加一个代码,把验证码赋给Session[“CODE”]。Session["CODE"]不用事先定义,直接用就OK,修改如下:
////////////////////////////////
//定义验证码字符串
string randomcode = "";
Random rd = new Random();
//生成4位验证码字符串
for (int i = 0; i < 4; i++)
randomcode += AllCheckCodeArray[rd.Next(AllCheckCodeArray.Length)];
Session["CODE"] = randomcode;
return randomcode;
////////////////////////////////////
然后在你的输入页面里面比如有一个textBox1的控件用来接收验证码。你这样比较就可以了。
if(textBox1.Text.Trim() == Session["CODE"].ToString())
{
//验证码正确
}
else
{
//验证码错误
}
全部回答
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
i chocolate you的解释
我的手机微信突然没有了如何重新登录?
已知f(x)=ex+2ax(a为常数),曲线y=f(x)
路由器管理密码是
午休时小陈大声朗读课文,同学多次劝阻,他却
爱的教育小商人卡洛斐中的斐的拼音怎么之读
活佛济公3赵斌找到土中草珠子在哪集
柳神医这篇阅读里柳医生有哪些性格特征
新街镇的基本概况
一个男同学告诉你找到对象了!只不过还在努力
110的平方除以1936等于
请把图中字母或代号所代表的地理事物名称填入
我不爱吃蔬菜和水果吃什么保健品好呢
流量1M等于多少B不知1M流量等于多少B
广州仁威庙 如何停车
推荐资讯
防御阵型:觉醒合集修改器
BboyDaniele的 gib nicht auf 这个歌的歌词大
【初一英语课本】初一英语课本内容人教版
找规律 3=1 4=4 5=10 6=20 7=35 8=56 9
未婚可以办独立户口本吗
呼和温多尔这个地址在什么地方,我要处理点事
在项目周期各阶段中,项目的资源投入大部分集
一女子称呼比她大16岁的男同事,长辈的叫叔叔
我们食堂每餐都有绿豆汤,每次饭后喝大量的绿
洗衣片的成份有那些
早上起床左手发麻是怎么回事
交易支付中的上海消费支付宝和支付宝网络技术
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?