使用 JSON 管理 HTML 页面上的 ASP.Net 会话?

发布于 2024-12-28 20:32:07 字数 114 浏览 0 评论 0原文

成功从 aspx 页面登录到 html 页面后会传递会话,我希望能够使用 JSON 获取会话对象并修改 html 元素,任何人都可以发布一个简单的示例来说明如何使用 JSON 执行此操作吗?

谢谢。

A session is being passed after successful login from a aspx page to an html page, i want to be able to get the session object using JSON and modify html elements, can anyone post a simple example on how to do that using JSON ?

thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

思念绕指尖 2025-01-04 20:32:07

您需要从客户端对 Web 服务方法或页面方法(页面中定义的 Web 方法)进行 AJAX 调用。

如果您选择页面方法选项,您的代码可能是这样的:

您的 Page.aspx 后面的代码

    public class CustomSessionObject
    {
        public string Name { get; set; }
    }

    [WebMethod]
    public static object GetSessionData()
    {
        try
        {
            return HttpContext.Current.Session["THE_SESSION_VAR_YOU_NEED"] as CustomSessionObject;
        }
        catch (Exception e)
        {
           //Log Exception

            throw;
        }
    }

我不建议总是返回所有会话变量。明确说明并只返回您需要的内容。这样,如果稍后其他开发人员添加了更多用户会话变量,它们也不会被返回。如果这样做,将来可能会出现安全漏洞。

使用 JQuery 进行 AJAX 调用。

var handleError = function(jqXHR, textStatus, errorThrown) {
    alert("An error occurred: " + jqXHR.responseText);
};

var handleSuccess = function(data, textStatus, jqXHR) {
    if (data && data.d) {
        alert(data.d.Name);
    }
};

$.ajax({
    url: 'Page.aspx/GetSessionData',
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: handleSuccess,
    error: handleErr
});

另请阅读了解更多信息。

You will need to make a AJAX call from the clientside to a web service method or a page method (webmethod defined in your page).

If you choose for the page method option your code could be something like this:

Your code behind of your Page.aspx

    public class CustomSessionObject
    {
        public string Name { get; set; }
    }

    [WebMethod]
    public static object GetSessionData()
    {
        try
        {
            return HttpContext.Current.Session["THE_SESSION_VAR_YOU_NEED"] as CustomSessionObject;
        }
        catch (Exception e)
        {
           //Log Exception

            throw;
        }
    }

I would not advise to always give back all the session vars. Make it explicit and give only back the ones you need. This way if on a later moment in time a other developer adds more user session vars they will not be returned as well. If you do this, it might be a security leak in the future.

Using JQuery for making the AJAX call.

var handleError = function(jqXHR, textStatus, errorThrown) {
    alert("An error occurred: " + jqXHR.responseText);
};

var handleSuccess = function(data, textStatus, jqXHR) {
    if (data && data.d) {
        alert(data.d.Name);
    }
};

$.ajax({
    url: 'Page.aspx/GetSessionData',
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: handleSuccess,
    error: handleErr
});

Also read this for some more info.

七色彩虹 2025-01-04 20:32:07

Session 对象通常是服务器端的,使用存储在客户端 cookie 中的会话密钥进行引用。

另外,JSON 是一种数据传输格式,因此它实际上没有任何作用。也许你指的是 jQuery?

如果您希望能够在客户端和服务器上对其进行修改,则需要客户端 cookie。阅读此概述:http://msdn.microsoft.com/en-us /library/ie/ms178194.aspx

The Session object is usually server-side, referenced using a session key stored in a client cookie.

Also, JSON is a data transfer format, so it doesn't really do anything. Perhaps you mean jQuery?

If you want to be able to modify it at the client and at the server, you want client cookies. Read this overview: http://msdn.microsoft.com/en-us/library/ie/ms178194.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文