一般处理程序(.ashx)中使用Session

最近做一个项目,有使用Ajax调用ashx文件 ,其中ashx文件里面有用到Session,但是总无法获取Session,经过调试,出现的错误的原因:

大体如下

Session["loginName"]为空,无法toString();

context.Session["Id"]

“context.Session”引发了“System.NullReferenceException”类型的异常

base {System.SystemException}: {"该方法的指针为空。"}

查阅MSDN得到ashx文件要使用Session,必须实现Session接口; 

using System;
using System.Web;
using System.Web.SessionState;     //第一步:导入此命名空间

public class checkCookie : IHttpHandler ,IRequiresSessionState   //第二步:实现接口    到此就可以像平时一样用Session了
...{
    
    public void ProcessRequest (HttpContext context) 
    ...{

时间: 2024-10-06 07:47:04

一般处理程序(.ashx)中使用Session的相关文章

ASP.NET ASHX中获得Session的方法

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

ASHX中引用Session 出现“呈现未将对象引用设置到实例上”

在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写! System.Web.SessionState的接口介绍: IReadOnlySessionState 指定目标 HTTP 处理程序只需要具有对会话状态值的读访问权限.这是一个标记接口,没有任何方法. IRequiresSessionState 指定目标 HTTP 处理程序需要对会话状态值具有读写访问权.这是一个标

ASP.NET ASHX中访问Session

默认,在ashx文件中无法使用Session,直接获取context.Session只能取得null. 解决办法: 添加命名空间 using System.Web.SessionState 的引用 让这个General Handler类实现IRequiresSessionState接口 然后再用context.Session或HttpContext.Current.Session就能获取Session

ashx中使用session

1.using System.Web.SessionState; 2.实现接口IRequiresSessionState public class Handler : IHttpHandler,IRequiresSessionState{ string code = context.Session["code"].ToString(); }

ASP.NET MVC 项目中 一般处理程序ashx 获取Session

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

ashx页面中context.Session["xxx"]获取不到值的解决办法

1.在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法不变. 2. 在ashx文件中,若要对Session进行成功的读写,应该在使用 Session的class后增加接口IRequiresSessionState (添加 时可能提示添加命名空间 using System.

ashx中session的使用

在平常的页面上是用是很容易就的到request,response对像,从而对其进行一些操作,但在ashx(一般处理程序)中却是有一点的不同, 在ashx你无法正常的使用session,即 1 context.session["TestA"]="1111"; 虽然生成的时候是不报错的,但是是赋值不了的,而且也取不到值. 如果要在ashx中是session,需要引用   using System.Web.SessionState;  并且实现 IRequiresSess

Ajax 调用(传值)一般处理程序(.ashx)

问题:在一般处理程序(.ashx)中累加[index='b']的值 难点:前台获取JSON值后台解析 解决: //#region 把index=b的值存在JSON对象中 function AjaxGetSum() { var arr = []; $("input[index='b']").each(function () { var arrObject = {}; var tempVal = $(this).val(); if (!$.gstr.isEmpty(tempVal)) {

asp.net中一般处理程序中添加session

asp.net中使用一般处理程序(.ashx)添加session,利用context.session["xxx"] = value的方式把值保存到session:运行的时候会出现该对象尚未引用. 解决办法:1,在一般处理程序的类后面添加IRequiresSessionState.例如public class xxx : IHttpHandler, IRequiresSessionState. 2,引入session所使用的类库,using System.Web.SessionState