2010-01-23 4 views
2

У меня есть клиентское приложение, которое общается с веб-службой ASP.NET, используя проверку подлинности на основе файлов cookie. (клиенты вызывают метод входа, который устанавливает постоянный файл cookie, который затем повторно используется для запросов в сеансе входа в систему).HttpWebRequest потери cookie

Это работает нормально в течение некоторого времени, но я начал получать отчеты об ошибках с нескольких машин, используемых новым клиентом, которые, как представляется, указывают на то, что файл cookie не прошел успешно. (Запросы на вход все успешны, но все последующие запросы терпят неудачу с 302-перенаправлением на ресурс входа)

Я использую CookieContainer, который я вручную прикрепляю к каждому HttpWebRequest, который я использую, чтобы гарантировать, что файлы cookie сохраняются на каждом запрос.

Возможно ли, что на этих машинах есть какое-то «защитное» программное обеспечение, которое перехватывает или блокирует передачу файлов cookie? (I am с использованием SSL). Если да, есть ли что-нибудь, что можно сделать, чтобы рассказать, что мешает?

+0

Вы уверены, что используете * тот же самый * экземпляр 'CookieContainer' * * для каждого HttpWebRequest? Что вы подразумеваете под «Я использую, чтобы гарантировать, что файлы cookie сохраняются по каждому запросу»? Как вы это гарантируете? – DxCK

+0

Можете ли вы понюхать это общение со скрипачом? –

+0

да, я использую один и тот же контейнер ... он работает нормально на 99% подключенных машин, есть только несколько, которые вообще не работают. (эта цитата означала, что я прикреплял один и тот же файл cookie к каждому веб-запросу, чтобы отдельные запросы делили один и тот же набор файлов cookie. – homeInAStar

ответ

0

Это очень не похоже на то, что программное обеспечение безопасности может даже видеть внутри вашего пакета, если вы используете SSL. Данные SSL должны быть зашифрованы еще до того, как они попадут в пакетную форму; как правило, они шифруются даже перед использованием send() в сокете. Если у вас нет удивительного программного обеспечения безопасности, которое нарушило SSL-шифрование и может заглянуть внутрь пакета, это не должно быть возможным.

Неужели одни и те же машины терпят неудачу каждый раз? Или некоторые машины случайно не работают в разы, а другие не работают в другое время? Если это последнее, возможно, что-то происходит на сервере, а не на клиентах.

+0

Тот же набор из 3 машин терпит неудачу. Когда пользователи с этих компьютеров переключаются на другие машины, все, кажется, отлично работает для них Я развернул некоторые обновленные диагностические средства, надеюсь, что я смогу получить больше информации с этих машин. – homeInAStar

+0

Вы можете включить tracelogging для своего приложения. См. Это: http: // fe rozedaud.blogspot.com/2009/08/tracing-with-systemnet.html. Затем просмотрите файл журнала, чтобы узнать, почему cookie не отправляется. – feroze

+0

Кроме того, возможно ли, что между клиентом и серверами существует балансировка нагрузки? Итак, если обработка M1 устанавливает cookie ответа, но если последующий запрос будет обрабатываться M2, то M2, очевидно, не имеет понятия, что делать с этим файлом cookie, и может отказаться от него. – feroze

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