-.ashx文件不能访问Session值的解决方法

网络编程 2025-03-28 16:58www.168986.cn编程入门

关于解决在.ashx文件中无法访问Session值的问题

对于.ashx文件的开发者来说,有时候会遇到无法访问Session值的问题。这个问题其实很容易解决,只需在文件的头部引用一个命名空间即可。这篇文章将为你展示具体的解决方案,希望能对正在面临这个问题的朋友们有所帮助。

让我们来看一下具体的实例代码。这是一个名为productHandler的类,它实现了IHttpHandler接口,并且使用了System.Web.SessionState命名空间,这样就能够访问Session值了。

代码示例:

```csharp

<%@ WebHandler Language="C" Class="productHandler" %>

using System;

using System.Web;

using JBTCard.EntitypanyEntity;

using JBTCard.BusinesspanyBS;

using System.Collections.Generic;

using Newtonsoft.Json;

using System.Web.SessionState; // 引入命名空间以访问Session值

public class productHandler : IHttpHandler, IRequiresSessionState // 接口声明,表示需要访问Session状态

{

public void ProcessRequest(HttpContext context)

{

string moduleId = context.Request.Form["moduleId"].ToString();

string message = "";

switch (moduleId)

{

case "getPTypeList":

IList list = ProductTypeBS.GetPTypeListIdName();

message = JavaScriptConvert.SerializeObject(list);

break;

case "getCompanyById":

int cid = Convert.ToInt32(context.Session["cid"]); // 在这里访问Session值

CompanyEntity pany = CompanyBS.GetCompanyEntyById(cid); // 使用Session中的值作为参数获取公司信息

message = JavaScriptConvert.SerializeObject(pany);

break;

case "insert":

string condis = context.Request.Form["condi"].ToString();

ProductEntity model = (ProductEntity)JavaScriptConvert.DeserializeObject(condis, typeof(ProductEntity));

bool b = ProductBS.AddProduct(model);

if (b)

{

message = "{suess:true}";

}

else

{

throw new Exception("商品添加失败!");

}

break;

}

context.Response.ContentType = "text/javascript";

context.Response.Write(message);

}

public bool IsReusable { get { return false; } }

}

``` 实际上解决这个问题只需要添加一句代码:在文件的头部引用System.Web.SessionState命名空间。这样,你就可以在代码中自由地访问Session值了。对于使用ashx文件开发的asp程序来说,这是一个非常实用且重要的解决方案。希望这篇文章能对你的程序设计工作有所帮助。如果你有任何疑问或需要进一步的解释,请随时提问。

上一篇:jQuery焦点控制图层展示延迟隐藏的方法 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by