c# - 如何使用 jQuery 读取 session 值

标签 c# asp.net jquery session-variables

我正在使用 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/

相关文章:

c# - 在 WPF 中从串口接收数据时做一些事情

c# - 具有多个 SVC 的 WCF Web 配置

asp.net - 为什么我使用 c# 在 asp.net 中收到来自 Paypal 的无效响应?

.net - 如何使用循环从 100 个文本框中检索值

javascript - 如何在CKEditor中使用Line Height插件?

javascript - 从 php 打开时 jQuery UI 对话框不可见

c# - 如何使用 C# 从图像中裁剪十字矩形?

c# - 通过 Xamarin 在小部件中使用 ViewFlipper

c# - Entity Framework 使用了错误的连接提供者

javascript - 如何在任何 XMLHttpRequest 完成时运行函数?