2012-05-25 4 views
3

Мне было интересно, можно ли получить идентификатор сеанса сессии с помощью jQuery? И если да, то как это сделать, похоже, не может найти его на jquery.com.Получить идентификатор сеанса ASP.NET с помощью jQuery

+0

Может ли это сделать уязвимость безопасности? – frenchie

+0

@frenchie, как бы это сделать? Идентификатор сеанса уже доступен в вашем файле cookie или в запросе. – walther

+0

@walther: если он хранится в cookie, только приложение, запущенное на странице, может его прочитать. Однако, если вы начнете получать доступ к нему со страницы, теперь он также сохраняется в переменных страницы, которые могут стать доступными для нежелательного кода. Я не уверен на 100%, но чем больше вы затрагиваете проблемы, связанные с безопасностью, тем больше вероятность того, что вы откроете уязвимость. – frenchie

ответ

1

Вы не можете сделать это в jQuery самостоятельно, поскольку он только на стороне клиента и не может разговаривать с сервером, чтобы получить идентификатор сеанса ,

Обходным путем является создание веб-службы, которая возвращает идентификатор сеанса в формате XML/JSON, который вы можете вызвать из запроса AJAX в jQuery.

Что-то вроде этого:

$.ajax({ 
    url: "/mywebservice.asmx", 
    dataType: "json", 
    success: function(data) { 
     var sessionId = data.sessionId; // This would be determined by your server-side implementation 
     // do something with the sessionId... 
    } 
}); 
+0

Интересно. Всегда думал, что идентификатор сеанса хранится в файлах cookie или в строке запроса ... Когда это изменилось? – walther

+0

@walther Это, но я считаю, что он закодирован, поэтому не может быть прочитан непосредственно из jQuery. Возможно, я ошибаюсь - не будет в первый раз;) –

+0

Зачем делать отдельный запрос? Просто добавьте его на страницу, если вы хотите это сделать. –

2

идентификатор сеанса хранится либо в печенье или в строке запроса (в зависимости от capabilites браузера или конфигурации ASP.NET). Найдите, где находится идентификатор сеанса, и прочитайте его оттуда

+0

Хотя это может сработать - это cookie сеанса, который не закодирован каким-то образом? –

+0

Возможно, но я не уверен, почему кто-то хочет получить его, кроме как от взлома ... – Sly

Смежные вопросы