我正在使用 C# 和 jQuery。
我在下面的代码中使用 C# 代码设置 session 变量。
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();
}
现在我想使用 jQuery 读取这些值 (Session["skyFirstName"]
),以便我可以在我的元素中进行设置。请提出建议。
最佳答案
session 值存储在服务器上,无法使用客户端 javascript 读取它们。实现此目的的一种方法是公开一些服务器端脚本或通用处理程序,它们会在给定键的情况下返回相应的 session 值,然后使用 jQuery 向该处理程序发送 AJAX 请求并读取该值。您应该知道,通过这样做,用户可以读取他所有的 session 值。请注意,从安全角度来看,公开用于写入 session 值的相同脚本可能是灾难性的。
这是一个例子:
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; }
}
}
然后查询:
$.getJSON('/ReadSession.ashx', { key: 'skyFirstName' }, function(result) {
alert(result.Value);
});
关于c# - 如何使用 jQuery 读取 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4678931/