2010-01-23 7 views
2

쿠키 기반 인증을 사용하여 ASP.NET 웹 서비스와 통신하는 클라이언트 응용 프로그램이 있습니다. (클라이언트는 로그온 세션 내의 요청에서 다시 사용되는 영구 쿠키를 설정하는 로그인 메서드를 호출합니다).HttpWebRequest 쿠키 손실

이 작업은 정상적으로 진행되었지만 새로운 클라이언트가 사용하는 몇 대의 컴퓨터에서 쿠키가 성공적으로 라운드 트립되지 않았 음을 나타내는 오류 보고서가 표시되기 시작했습니다. (로그인 요청은 모두 성공적이지만 로그온 요청에 대한 302 리디렉션으로 모든 후속 요청이 실패합니다.)

각 HttpWebRequest에 수동으로 첨부 한 CookieContainer를 사용하여 모든 쿠키가 계속 유지되도록합니다. 의뢰.

쿠키 전송을 가로 채거나 차단하는 "보안"소프트웨어가 이러한 컴퓨터에있을 수 있습니까? SSL을 사용하는 입니다. 그렇다면 무슨 일이 일어나고 있는지 말할 수있는 방법이 있습니까?

+0

* 동일한 * CookieContainer * 인스턴스 *를 각 HttpWebRequest에 첨부 하시겠습니까? "모든 요청에 ​​대해 쿠키가 보존되도록하기 위해 사용하고 있습니다"는 의미는 무엇입니까? 그걸 어떻게 지키고 있습니까? – DxCK

+0

피들러와의 의사 소통을 저지 할 수 있습니까? –

+0

예, 저는 같은 컨테이너를 사용하고 있습니다 ... 연결하는 기계의 99 %에서 정상적으로 작동하고 있습니다. 전혀 작동하지 않는 몇 가지가 있습니다. (그 견적은 각각의 웹 요청에 동일한 cookiecontainer를 첨부하여 개별 요청이 동일한 쿠키 세트를 공유하고 있음을 의미합니다.) – homeInAStar

답변

0

SSL을 사용하는 경우 보안 소프트웨어가 패킷 내부를 볼 수있는 것과 매우 다릅니다. SSL 데이터는 패킷 형태로 들어가기 전에 암호화되어야합니다. 일반적으로 소켓에 send()를 사용하기 전에도 암호화됩니다. SSL 암호화를 깨고 패킷을 들여다 볼 수있는 멋진 보안 소프트웨어가 없다면 이것이 불가능합니다.

매번 동일한 기계가 작동하지 않습니까? 아니면 어떤 컴퓨터가 때때로 무작위로 실패하고 다른 컴퓨터가 다른 시간에 실패합니까? 후자라면 클라이언트가 아닌 서버에서 진행될 수 있습니다.

+0

3 대의 동일한 머신 세트가 항상 실패합니다. 해당 머신의 사용자가 다른 머신으로 전환하면 모든 것이 제대로 작동하는 것처럼 보입니다. . 일부 업데이트 된 진단 도구를 배포 했으므로이 컴퓨터에서 더 많은 정보를 얻을 수 있기를 바랍니다. – homeInAStar

+0

앱에 대한 tracelogging을 활성화 할 수 있습니다. rozedaud.blogspot.com/2009/08/tracing-with-systemnet.html. 그런 다음 로그 파일을보고 쿠키가 전송되지 않는 이유를 확인하십시오. – feroze

+0

또한 클라이언트와 서버 사이에로드 밸런서가있을 수 있습니까? 따라서 M1을 가공하면 응답에 쿠키가 설정되지만 후속 요청이 M2로 전송되는 경우 M2는 분명히 해당 쿠키로 무엇을해야할지 모를 것이며 무시할 수 있습니다. – feroze