ASP.NET使用jQuery访问当前会话

时间:2009-07-07 19:16:53

标签: asp.net jquery session

有没有办法使用jQuery修改当前的Session()变量?如果它涉及解构ViewState,那么我真的不感兴趣。只是好奇是否有一些简单的方法可以做到。

谢谢!

3 个答案:

答案 0 :(得分:3)

如果你需要在jQuery和服务器之间传递每个会话属性,你可以尝试使用cookie。

否则,您必须创建一个自定义处理程序(ashx)文件或WebMethod或类似文件,以便您通过Ajax调用来访问它。

答案 1 :(得分:1)

的jQuery


$.get("http://somewhere/page.aspx",
      {sessionVar: "something"},
      function(data)
      {
          alert("Session(\"something\") = " + data);
      }
);

page.aspx:


Response.Write(Session[Request.QueryString["sessionVar"]]);

没有错误检查或其他任何事情......

答案 2 :(得分:0)

会话存储在服务器上,除非您进行ajax调用并从服务器获取会话详细信息,否则无法从jQuery访问它。

除了ViewState和Session都帮助开发人员在其Web应用程序中维护状态这一事实之外,它们彼此无关。

修改

如果要使用Ajax修改会话。创建HTTP处理程序SessionHelper.ashx。此会话处理程序可以将“SessionVariableName”和“SessionVariableValue”作为Query String参数,并修改服务器上的会话状态。您可以使用$ .ajax方法从jQuery调用此处理程序。

请记住,如果您公开这样的处理程序,则必须保护它不被滥用,因为任何人都可以直接调用处理程序并修改Session变量。 [例如。如果您在会话中存储用户角色/权限,则黑客可以通过此处理程序修改此角色/权限。]