有没有办法使用jQuery修改当前的Session()
变量?如果它涉及解构ViewState,那么我真的不感兴趣。只是好奇是否有一些简单的方法可以做到。
谢谢!
答案 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变量。 [例如。如果您在会话中存储用户角色/权限,则黑客可以通过此处理程序修改此角色/权限。]