Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Session in web service / 20 сообщений из 20, страница 1 из 1
22.03.2013, 09:48
    #38194282
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
Не работает Session, не пойму почему, обьявил методы как [WebMethod(EnableSession = true)] но при попытке доступа к значению сохраненному в сессии - получаю исключение доступа к null обьекту.

Session["ID1"] = "8303020008082";

-- тут (другой метод) вылетает исключение
Session["ID1"].ToString()

Где-то еще что-то надо обьявить?
...
Рейтинг: 0 / 0
22.03.2013, 09:53
    #38194292
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
...
Рейтинг: 0 / 0
22.03.2013, 09:55
    #38194294
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
1. Клиент cookie хранит?
2. Другой метод как вызывается?
...
Рейтинг: 0 / 0
22.03.2013, 09:58
    #38194299
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANA1. Клиент cookie хранит?
2. Другой метод как вызывается?

он должен как-то специально их хранить? Клиент - виндовое приложение просто вызывает 2 разных веб метода. Клиента надо как-то специально заставить сохранять куки?
...
Рейтинг: 0 / 0
22.03.2013, 09:59
    #38194302
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
Если вэбсервис на другом домене, то никакой сессии не получится. Потому что кукисы передаются только на тот домен, откудова загружена страница. Даже localhost вместо 127.0.0.1 не прокатит.
...
Рейтинг: 0 / 0
22.03.2013, 09:59
    #38194306
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
stenford, статью прочитали?
...
Рейтинг: 0 / 0
22.03.2013, 10:02
    #38194311
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
ShSergeЕсли вэбсервис на другом домене, то никакой сессии не получится. Потому что кукисы передаются только на тот домен, откудова загружена страница. Даже localhost вместо 127.0.0.1 не прокатит.Клиент у ТС - виндовое приложение. Так что нет никаких загруженных страниц и других доменов.
...
Рейтинг: 0 / 0
22.03.2013, 10:03
    #38194313
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANAstenford, статью прочитали?

client must persist the cookie.Clients can receive the HTTP cookie by creating a new instance of CookieContainer and assigning that to the CookieContainer property of the proxy class before calling the XML Web service method

т.е. клиента надо специально для этого запрограммировать? Это не получится - клиент существующий и модификация невозможна. Получается сессию использовать неполучится?
...
Рейтинг: 0 / 0
22.03.2013, 10:04
    #38194314
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANAShSergeЕсли вэбсервис на другом домене, то никакой сессии не получится. Потому что кукисы передаются только на тот домен, откудова загружена страница. Даже localhost вместо 127.0.0.1 не прокатит.Клиент у ТС - виндовое приложение. Так что нет никаких загруженных страниц и других доменов.
Когда я писал свой пост, топикстартер ещё об этом не говорил. Вот и приходится гадать... .
...
Рейтинг: 0 / 0
22.03.2013, 10:05
    #38194316
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
stenford, клиент через что работает с сервисом, через proxy класс, сгенерированный при добавлении Web References?
Посмотрите в Fiddler2 передаёт-ли он куки сервису.
...
Рейтинг: 0 / 0
22.03.2013, 10:10
    #38194322
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
stenfordskyANAstenford, статью прочитали?

client must persist the cookie.Clients can receive the HTTP cookie by creating a new instance of CookieContainer and assigning that to the CookieContainer property of the proxy class before calling the XML Web service method

т.е. клиента надо специально для этого запрограммировать? Это не получится - клиент существующий и модификация невозможна. Получается сессию использовать неполучится?В статье есть пример. Перед вызовом сервиса через прокси класс нужно свойство CookieContainer проинициализировать. Если Вы этого не делаете, и код доработать не можете. То увы и ах.
...
Рейтинг: 0 / 0
22.03.2013, 10:13
    #38194324
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
Кстати, для работы с сессией, вовсе не обязательно, чтобы были включены кукисы.
Достаточно айди сессии передавать в строке ГЕТ запроса. Так оно и работает, если в браузере выключены куки.
Точно также сделать в этом самом виндовом приложении.
...
Рейтинг: 0 / 0
22.03.2013, 10:20
    #38194337
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANAт.е. клиента надо специально для этого запрограммировать? Это не получится - клиент существующий и модификация невозможна. Получается сессию использовать неполучится?В статье есть пример. Перед вызовом сервиса через прокси класс нужно свойство CookieContainer проинициализировать. Если Вы этого не делаете, и код доработать не можете. То увы и ах. [/quot]

блин, плохо, если там надо было инициализировать класс, то это по-любомы было не сделано. Есть-ли какие альтернативы? Как насчет Application[]? Он должен работать? И можно-ли как-то заставить его отслеживать из какой сессии пришел запрос?
...
Рейтинг: 0 / 0
22.03.2013, 10:24
    #38194339
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
ShSergeКстати, для работы с сессией, вовсе не обязательно, чтобы были включены кукисы.
Достаточно айди сессии передавать в строке ГЕТ запроса. Так оно и работает, если в браузере выключены куки.
Точно также сделать в этом самом виндовом приложении.КО. Опять писали до того, как ТС сказал, что код клиента изменить нет возможности? И что значит включены кукисы в виндовом приложении?
...
Рейтинг: 0 / 0
22.03.2013, 10:26
    #38194342
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
проверил - Application[] работает. Но это глобальный обьект верно? Он не отслеживает в какой сессии это было сохранено. Что-нибудь можно сделать? Например можно-ли определить IP адрес с которого приходит запросы и соответственно фильтровать данные?
...
Рейтинг: 0 / 0
22.03.2013, 10:28
    #38194347
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
stenfordблин, плохо, если там надо было инициализировать класс, то это по-любомы было не сделано. Есть-ли какие альтернативы? Как насчет Application[]? Он должен работать? И можно-ли как-то заставить его отслеживать из какой сессии пришел запрос?Вы так и не сказали, что используется на клиенте. Откуда тут угадаешь, что надо было инициализировать.
Про какие альтернативы Вы спрашиваете? Какая задача стоит? Может по IP клиента что-то там определять?
...
Рейтинг: 0 / 0
22.03.2013, 10:31
    #38194352
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
stenfordНапример можно-ли определить IP адрес с которого приходит запросы и соответственно фильтровать данные?Можно.
Код: c#
1.
Context.Request.UserHostAddress

или
Код: c#
1.
Context.Request.ServerVariables["REMOTE_ADDR"]
...
Рейтинг: 0 / 0
22.03.2013, 11:30
    #38194466
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANA...И что значит включены кукисы в виндовом приложении?
Я про кукисы в виндовом приложении не писал. Хотя, почему нет? Что не отправить на сервер куки из-под виндового приложения? :)
...
Рейтинг: 0 / 0
22.03.2013, 11:42
    #38194492
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
ок, вроде работает. А есть разница между Context.Request.UserHostAddress и Context.Request.ServerVariables["REMOTE_ADDR"]? Мне оба на локальной машине выдают адрес ::1, это нормально?
...
Рейтинг: 0 / 0
22.03.2013, 11:55
    #38194536
stenford
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Session in web service
skyANAВы так и не сказали, что используется на клиенте. Откуда тут угадаешь, что надо было инициализировать.
Про какие альтернативы Вы спрашиваете? Какая задача стоит? Может по IP клиента что-то там определять?

клиент - обычный .net клиент, там просто была добавлена ссылка на вебсервис и делаются вызовы сервиса, никаких дополнительных телодвижений не было т.к. никакие куки тогда были не нужны
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Session in web service / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]