如何在.ashx文件中访问Session?

Kas*_*f R 39 c#

我想在.ashx文件中访问一些值(已在.aspx文件中设置).我尝试使用查询字符串,会话等获取该值,但每次失败.任何人都可以建议我如何在.ashx文件中访问会话值?

Han*_*ing 64

在ashx.cs文件中,也"实现"接口System.Web.SessionState.IReadOnlySessionStateSystem.Web.SessionState.IRequiresSessionState.

您不必实现任何方法,只需存在此方法即可使会话可用(在只读或读/写模式下)context.Session.

标题看起来像:

public class MyHandler: IHttpHandler, System.Web.SessionState.IReadOnlySessionState
Run Code Online (Sandbox Code Playgroud)

  • 我爱你.出于某种原因,此问题仅在Visual Studio 2013(VS2013)中体现出来.可能是因为它使用的.NET版本或IIS Express版本(IIS 7?)感谢您的帮助! (3认同)

mrd*_*mrd 51

在aspx文件中:

Session.Add("filename", "Test.txt");
Run Code Online (Sandbox Code Playgroud)


在aspx文件中设置会话值后.使用以下命令获取ashx文件中的值.

在ashx文件中:

public class ImageHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
      string Name = "";
      if (context.Session["filename"] != null)
         Name = context.Session["filename"].ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案的关键部分是必须修改处理程序以继承IRequiresSessionState才能访问Session. (13认同)