Управление сессией ASP.Net на HTML-странице с помощью JSON? - PullRequest
0 голосов
/ 25 января 2012

Сеанс передается после успешного входа со страницы aspx на html-страницу, я хочу иметь возможность получить объект сеанса с помощью JSON и изменить html-элементы, может кто-нибудь опубликовать простой пример того, как это сделать с помощью JSON

спасибо.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Вам потребуется выполнить 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
});

Также прочитайте this , чтобы узнать большеИнформация.

0 голосов
/ 25 января 2012

Объект Session обычно находится на стороне сервера, и на него ссылается сеансовый ключ, хранящийся в файле cookie клиента.

Кроме того, JSON - это формат передачи данных, поэтому он ничего не делает.Возможно, вы имеете в виду jQuery?

Если вы хотите изменить его на клиенте и на сервере, вам нужны клиентские куки.Прочитайте этот обзор: http://msdn.microsoft.com/en-us/library/ie/ms178194.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...