54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Web;
							 | 
						|||
| 
								 | 
							
								using System.Web.Services;
							 | 
						|||
| 
								 | 
							
								using System.Web.SessionState;
							 | 
						|||
| 
								 | 
							
								using System.Drawing.Imaging;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.Captcha
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    /// <summary>
							 | 
						|||
| 
								 | 
							
								    /// 生成验证码图片
							 | 
						|||
| 
								 | 
							
								    /// </summary>
							 | 
						|||
| 
								 | 
							
								    [WebService(Namespace = "http://tempuri.org/")]
							 | 
						|||
| 
								 | 
							
								    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
							 | 
						|||
| 
								 | 
							
								    public class captcha : IHttpHandler, IReadOnlySessionState
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public void ProcessRequest(HttpContext context)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            int width = 200;
							 | 
						|||
| 
								 | 
							
								            int height = 30;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                width = Convert.ToInt32(context.Request.QueryString["w"]);
							 | 
						|||
| 
								 | 
							
								                height = Convert.ToInt32(context.Request.QueryString["h"]);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                // Nothing
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            // 从 Session 中读取验证码,并创建图片
							 | 
						|||
| 
								 | 
							
								            CaptchaImage.CaptchaImage ci = new CaptchaImage.CaptchaImage(context.Session["CaptchaImageText"].ToString(), width, height, "Consolas");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            // 输出图片
							 | 
						|||
| 
								 | 
							
								            context.Response.Clear();
							 | 
						|||
| 
								 | 
							
								            context.Response.ContentType = "image/jpeg";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            ci.Image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            ci.Dispose();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool IsReusable
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return false;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |