ASP.NET ashx 基类的使用方法, ashx 如何继承, ashx 基类如何实现

ashx文件没有页面元素,这点上区别于aspx页面,所以在效率上要比aspx页面高,通常用于ajax提交处理程序,实际项目中,用户的每个请求需要判断用户是否登录,可以是Cookie, Session,每个请求页面中去写判断用户是否登录的方法过于麻烦,所以可以通过一个基类实现所有请求方法前的用户登录状态判断。应用基类的好处可以将一些基本验证,公用方法,函数统一处理。


BaseHandle.ashx

    /// <summary>
    /// 基类
    /// ashx中如果要使用Session需要继承 IRequiresSessionState 接口
    /// </summary>
    public class BaseHandler : IHttpHandler, IRequiresSessionState
    {
        /// <summary>
        /// 请求处理
        /// </summary>
        /// <param name="context"></param>
        public void ProcessRequest(HttpContext context)
        {
            // 逻辑验证, 如: 用户登录验证
            // ...
            // ...
            // ...
            if (1 == 0)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("error");
                return;
            }

            context.Response.ContentType = "text/plain";
            context.Response.Write("BaseHandler");

            AjaxRequest(context);
        }

        /// <summary>        
        /// ajax请求, 继承页面进行请求调用        
        /// </summary>        
        /// <param name="context"></param>        
        public virtual void AjaxRequest(HttpContext context) { }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }


继承页面,Test.ashx

    public class Test : BaseHandler
    {
        public override void AjaxRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Test");

            // 业务逻辑
            // ...
            // ...
            // ...
        }
    }


作者最新文章
C# 使用 CSVHelper 操作 csv 文件, .net core, .net framework 读取写入 csv 文件
C# 实现字符串文本换行的方法,文本如何换行
C# 如何循环读取文件每一行文本内容
C# DateTime AddMonths 的错误用法导致跳过日期
C# 全角转换半角,半角转换为全角