asp.net中一般处理程序获取session

asp.net的一般处理程序 .ashx的context对象默认是取不出session的值出来的

要达到取出Session的效果,则需要让它实现System.Web.SessionState.IReadOnlySessionState接口(该接口没有任何方法实现,只是起到一个标识作用)


为了让所有的一般处理程序都能获取到Session值,并且能集中做一些控制管理(比如用户认证、权限控制等),我的策略是让一个抽象类实现IHttpHandler, IRequiresSessionState接口,然后让其他所有一般处理程序都继承该抽象类即可。


Demo:

抽象类

using System;
using System.Web;
using System.Web.SessionState;
....

namespace SRERC.Web.admin
{
    /// <summary>
    /// SessionAwareHandler 的摘要说明
    /// </summary>
    public abstract class SessionAwareHandler : IHttpHandler, IRequiresSessionState
    {
         
         .....

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            
            // 身份认证
            
            // 权限控制

            MyProcess(context);

        }

       ........


      protected abstract void MyProcess(HttpContext context);

     }
}

一般处理程序实现类:

using System;
using System.Web;

namespace SRERC.Web.admin
{
    /// <summary>
    /// bandHandler 的摘要说明
    /// </summary>
    public class bandHandler : SessionAwareHandler
    {
        protected override void MyProcess(HttpContext context)
        {
             //....处理过程
	     //....
             context.Response.Write(json);
  
        }

    }
}

ok,也算是解决了问题吧

也不知道还有没有更好的方案



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Part1第一部分: 相信大家找得到该书的源代码部分 也就是这部分内容 因此我便无偿奉送 让大家下载试试。 若感觉可以方可继续下载电子书部分。 1.本书1~21章所附代码的运行环境 操作系统:Windows Server 2003或Windows XP Professional 开发环境:Microsoft Visual Studio 2005 数据库:SQL Server 2005 Web服务器:IIS 5.1及以上版本 2.本书所附光盘范例 第1章(\Chapter 01) 示例描述:本章演示ASP.NET 2.0网站的预编译以及学习ASP.NET 2.0的前置知识。 WebSite文件夹 创建的ASP.NET 2.0 Web站点。 www文件夹 第一个用C#开发的Web应用程序。 bianyi.bat 编译网站的批处理文件。 form.html 表单范例。 css.html CSS范例。 第3章(\Chapter 03) 示例描述:本章介绍C# 2.0程序设计基础。 3-01.cs 第一个C#程序。 3-02.cs 不导入命名空间来改写程序3-01.cs。 3-03.cs ReadLine()方法读数据。 3-04.cs 常量的使用。 3-05.cs 整型类型的使用。 3-06.cs 结构类型的使用。 3-07.cs 枚举类型的使用。 3-08.cs 用一个输入参数通过传递一个变量给一个方法。 3-09.cs 一维数组的使用。 3-10.cs 使用代理类型。 3-11.cs 使用接口。 3-12.cs 装箱操作。 3-13.cs 字符串操作。 3-14.cs if语句的使用。 3-15.cs switch语句的使用。 3-16.cs while语句的使用。 3-17.cs do-while语句的使用。 3-18.cs for语句的使用。 3-19.cs 异常捕获:try-catch语句的使用。 3-20.cs 异常捕获:try-finally语句的使用。 3-21.cs 异常捕获:try-catch-finally语句的使用。 3-22.cs get和set对属性的进行读写操作。 3-23.cs 方法的使用。 3-24.cs 继承演示。 3-25.cs 多态性演示。 第4 章(\Chapter 04) 示例描述:本章学习ASP.NET 2.0页面基本对象。 4-01.aspx aspx页面添加一个Lable标签。 4-02.aspx 读出Application的属性。 4-03.aspx 读出SessionID的。 4-04.aspx 创建Session对象。 4-05.aspx 读取传递的Session并显示。 4-06.aspx 使用Response对象的Write()方法。 4-07.aspx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值