Man*_*ngh 3 c# asp.net jquery session-variables
我正在使用c#和jQuery.
我在下面的代码中使用C#代码设置会话变量.
if (!string.IsNullOrEmpty(results))
{
string[] array = results.Split(',');
string firstName = array[0];
string lastName = array[1];
string activeCardNo = array[2];
string memberShipTier = array[3];
string accessToken = array[4];
Session["skyFirstName"] = firstName.ToString();
Session["skyLastName"] = lastName.ToString();
Session["skyActiveCardNo"] = activeCardNo.ToString();
Session["skyMemberShipTier"] = memberShipTier.ToString();
Session["boolSignOn"] = "true";
Response.Redirect(fromPage);
Response.End();
}
Run Code Online (Sandbox Code Playgroud)
现在我想Session["skyFirstName"]使用jQuery 读取这些值(),以便我可以在我的元素中设置.请建议.
会话值存储在服务器上,无法使用客户端javascript读取它们.实现此目的的一种方法是公开一些服务器端脚本或通用处理程序,它将返回给定键的相应会话值,然后使用jQuery向此处理程序发送AJAX请求并读取该值.您应该知道,通过这样做,用户可以读取他的所有会话值.请注意,从安全角度来看,暴露用于编写会话值的相同脚本可能是灾难性的.
这是一个例子:
public class ReadSession : IHttpHandler, IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
context.Response.Write(new JavaScriptSerializer().Serialize(new
{
Key = context.Request["key"],
Value = context.Session[context.Request["key"]]
}));
}
public bool IsReusable
{
get { return true; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后查询它:
$.getJSON('/ReadSession.ashx', { key: 'skyFirstName' }, function(result) {
alert(result.Value);
});
Run Code Online (Sandbox Code Playgroud)