httphandler生成无刷新验证码图片
2008-01-02 13:01
507 查看
首先添加一个handler<br />
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
public class Handler : IHttpHandler,IRequiresSessionState
{
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "image/jpeg";
Bitmap basemap = new Bitmap(200, 60);
Graphics graph = Graphics.FromImage(basemap);
graph.FillRectangle(new SolidBrush(Color.White),0,0,200,60);
Font font = new Font(FontFamily.GenericSansSerif,48,FontStyle.Bold,GraphicsUnit.Pixel);
Random r = new Random();
string letters = "abcdefghijklmnopqrstuvwxyz1234567890";
string letter;
StringBuilder s = new StringBuilder();
for (int i = 0; i < 5; i++)
{
letter = letters.Substring(r.Next(0,letters.Length-1),1);
s.Append(letter);
graph.DrawString(letter,font,new SolidBrush(Color.Blue),i*38,r.Next(0,15));
}
Pen linePen = new Pen(new SolidBrush(Color.Brown),2);
for (int i = 0; i < 6; i++)
{
graph.DrawLine(linePen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
}
basemap.Save(context.Response.OutputStream, ImageFormat.Gif);
context.Session["CheckCode"] = s.ToString();
context.Response.End();
}
public bool IsReusable {
get {
return true;
}
}
}
这是生成图片的代码。
然后在引用这个handler就可以了。
<img id="imgCheckCode" style="cursor:pointer" src="handler.ashx" alt="看不清?点击更换" onclick="this.src=this.src+'?'"/ />
但是我对onclick="this.src=this.src+'?'"这里不了解,这个+'?'什么作用呢?闷纳。
这样就实现了无数新验证码的功能了,这只是简单的实现,具体应用的需要按照需求来做进一步处理了。
这几天再看关于HttpHandler和HttpModule的内容,因此仿照别人的东西自己也动手写了一下,非原创,只是记录下来,希望对自己和别人能有点帮助。
HttpHandler和HttpModule的内容我暂时还不能讲解,免得误人子弟,我也只是刚刚了解一点,仍需要继续努力。如果大家想学习HttpHandler和HttpModule的话请参考:
http://www.theserverside.net/tt/articles/showarticle.tss?id=IIS_ASP
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
public class Handler : IHttpHandler,IRequiresSessionState
{
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "image/jpeg";
Bitmap basemap = new Bitmap(200, 60);
Graphics graph = Graphics.FromImage(basemap);
graph.FillRectangle(new SolidBrush(Color.White),0,0,200,60);
Font font = new Font(FontFamily.GenericSansSerif,48,FontStyle.Bold,GraphicsUnit.Pixel);
Random r = new Random();
string letters = "abcdefghijklmnopqrstuvwxyz1234567890";
string letter;
StringBuilder s = new StringBuilder();
for (int i = 0; i < 5; i++)
{
letter = letters.Substring(r.Next(0,letters.Length-1),1);
s.Append(letter);
graph.DrawString(letter,font,new SolidBrush(Color.Blue),i*38,r.Next(0,15));
}
Pen linePen = new Pen(new SolidBrush(Color.Brown),2);
for (int i = 0; i < 6; i++)
{
graph.DrawLine(linePen, new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));
}
basemap.Save(context.Response.OutputStream, ImageFormat.Gif);
context.Session["CheckCode"] = s.ToString();
context.Response.End();
}
public bool IsReusable {
get {
return true;
}
}
}
这是生成图片的代码。
然后在引用这个handler就可以了。
<img id="imgCheckCode" style="cursor:pointer" src="handler.ashx" alt="看不清?点击更换" onclick="this.src=this.src+'?'"/ />
但是我对onclick="this.src=this.src+'?'"这里不了解,这个+'?'什么作用呢?闷纳。
这样就实现了无数新验证码的功能了,这只是简单的实现,具体应用的需要按照需求来做进一步处理了。
这几天再看关于HttpHandler和HttpModule的内容,因此仿照别人的东西自己也动手写了一下,非原创,只是记录下来,希望对自己和别人能有点帮助。
HttpHandler和HttpModule的内容我暂时还不能讲解,免得误人子弟,我也只是刚刚了解一点,仍需要继续努力。如果大家想学习HttpHandler和HttpModule的话请参考:
http://www.theserverside.net/tt/articles/showarticle.tss?id=IIS_ASP
相关文章推荐
- J2EE如何生成验证码图片和点击刷新验证码
- J2EE如何生成验证码图片和点击刷新验证码
- 利用HttpHandler生成验证码
- HttpHandler动态生成图片
- J2EE验证码图片如何生成和点击刷新验证码
- 如何生成验证码图片,并且不刷新页面就可换图片
- 结合php验证码图片生成实现点击刷新
- JSP彩色验证码,生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新
- 实战 HTTP 处理程序(HTTP Handler) -- 动态生成图片
- HttpHandler动态生成图片
- HttpHandler生成图片
- 实战 HTTP 处理程序(HTTP Handler) (3) -- 动态生成图片
- HttpHandlerFactory来根据不同的后缀名调用不通的图片生成Handler来生成图片
- Servlet生成验证码在JSP页面显示,单击验证码图片可刷新
- Http Handler 介绍 httpHandler 验证码 图片防盗链
- J2EE如何生成验证码图片和点击刷新验证码
- J2EE验证码图片如何生成和点击刷新验证码
- HttpHandler生成随机码、验证码
- 实战 HTTP 处理程序(HTTP Handler) (3) -- 动态生成图片