您的位置:首页 > 编程语言 > ASP

验证码的编写 asp.net

2009-07-13 18:23 204 查看
记得有次面试的时候,一位面试管问过这个问题,我就说了下原理。之前一直没有时间去实现这个东东。今天终于有时间了,就写了一下。希望对各位有用.在这里面有种处理图片的技术,因为微软目前自己也没有写成一个方法或者控件什么的, 把二进制的图片数据读出放进 Image 图片控件中。而我的处理方式就是 专门写个页面用来读二进制数据,用

Response.BinaryWrite(ms.ToArray()) 方法直接写到页面。然后再在另一个页面的 Imageurl 的地址就写成上个页面的地址, 把上面的整个页面也当作图片来处理。 和大家分享一下原码:

创建验证码页面:CreateCode.aspx

using System;
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 _Default : System.Web.UI.Page

在 checkcode.aspx 页面中调用 (关键一点就是 : Image.ImageUrl =" CreateCode.aspx ")

protected void btnLogin_Click(object sender, EventArgs e)
{
if (Request.Cookies["CheckCode"] == null)
{
lblMessage.Text = "您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统。";
lblMessage.Visible = true;
return;
}

if (String.Compare(Request.Cookies["CheckCode"].Value, txtCheckCode.Text, true) != 0)
{
lblMessage.Text = "验证码错误,请输入正确的验证码。";
lblMessage.Visible = true;
return;

}
else
{
lblMessage.Visible = false;
lblMessage.Text="验证成功!";
}
}

不过有个问题,就是,要是不对的话,整个页面都会刷新,要使它不刷新的话,该怎么弄呢, 用 ajax ? 还有其他的方法吗?

希望各位指点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: