Light12306/Web12306/CrxHandler.cs
2014-09-05 18:34:16 +08:00

79 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
namespace Web12306
{
public class CrxHandler:IHttpHandler
{
#region Implementation of IHttpHandler
#if !DEBUG
/// <summary>
/// 通过实现 <see cref="T:System.Web.IHttpHandler"/> 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
/// </summary>
/// <param name="context"><see cref="T:System.Web.HttpContext"/> 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server的引用。</param>
public void ProcessRequest(HttpContext context)
{
var request = context.Request;
var response = context.Response;
var ua = request.UserAgent;
if (string.IsNullOrEmpty(ua))
return;
var m = Regex.Match(ua, @"Chrome/(\d+)", RegexOptions.IgnoreCase);
if (!m.Success)
return;
var v = int.Parse(m.Groups[1].Value);
if (v < 34)
{
response.Redirect("http://www.fishlee.net/service/dcl/44");
}
else
{
response.Redirect("http://www.fishlee.net/service/dcl/60");
}
}
#else
/// <summary>
/// 通过实现 <see cref="T:System.Web.IHttpHandler"/> 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
/// </summary>
/// <param name="context"><see cref="T:System.Web.HttpContext"/> 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server的引用。</param>
public void ProcessRequest(HttpContext context)
{
var request = context.Request;
var response = context.Response;
var ua = request.UserAgent;
if (string.IsNullOrEmpty(ua))
return;
var m = Regex.Match(ua, @"Chrome/(\d+)", RegexOptions.IgnoreCase);
if (!m.Success)
return;
response.Redirect("crx.crx");
}
#endif
/// <summary>
/// 获取一个值,该值指示其他请求是否可以使用 <see cref="T:System.Web.IHttpHandler"/> 实例。
/// </summary>
/// <returns>
/// 如果 <see cref="T:System.Web.IHttpHandler"/> 实例可再次使用,则为 true否则为 false。
/// </returns>
public bool IsReusable {
get { return false; }
}
#endregion
}
}