ASP.NET通用处理程序&会议

时间:2011-02-03 17:26:56

标签: c# jquery asp.net session generic-handler

我的GenericHandler和anonymousIdentification存在问题。

基本上,如果在Web配置中打开<anonymousIdentification enabled="true" />,每当向服务器发送JQuery GET / POST请求时,该请求将在新用户和新用户会话下执行。

有没有办法减轻这个?我需要访问当前用户的会话变量......真的很令人沮丧!

4 个答案:

答案 0 :(得分:38)

通用处理程序必须实现IReadOnlySessionState接口才能访问会话变量。如果您还需要编写会话变量,请实现IRequiresSessionState

答案 1 :(得分:11)

实施System.Web.SessionState.IRequiresSessionState界面:

public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{   
  public void ProcessRequest(HttpContext context)  
  {      
    context.Session["StackOverflow"] = "overflowing";      
    context.Response.Redirect("~/AnotherPage.aspx");      
  }

}

答案 2 :(得分:2)

您可以使用:

public class Handler : 
    IHttpHandler, 
    System.Web.SessionState.IReadOnlySessionState

答案 3 :(得分:-1)

我建议您在网络浏览器中启用开发者模式下的网络标签。 然后检查AJAX发送的cookie(如果有的话)。

如果您没有看到任何cookie,则表示浏览器未获得任何会话,因此您应确保(如Josh所述)继承正确的界面并访问cookie。 (别忘了使用System.Web.SessionState)

要生成cookie,请访问会话对象的sessionID:

string sesId = context.Session.SessionID;

之前,您可以在回复中写任何内容。