문제

CookieContainer를 사용하여 몇 가지 HTTPWebRequests와 Httpwebrepses가 함께 묶여 있습니다.

이 코드는 쿠키 정보를 설정하고 네 번째에 사용자 이름 및 비밀번호로 로그인 한 3 가지 'I Event'페이지를 사용하여 5 번째로 응답을 문자열로 반환하는 게시물 (검색)을 사용하는 사용자가 시뮬레이션합니다.

사용자가 검색을 수행 할 때마다 해당 단계를 거치지 않도록 HTTPWebrequest 객체를 '로그인'으로 유지할 수있는 방법이 있습니까?

정적으로 설정할 수 있으며 널 또는 쿠키 정보가 부족한 경우 모든 단계를 실행할 수 있습니다. 그렇지 않으면 사용자가 요구하는 게시물 만 수행 할 수 있습니까? 이것에 대한 좋은 패턴은 무엇입니까?.

도움이 되었습니까?

해결책

쿠키 기반 인증을 사용하기 위해 로그인하는 서버가 인증 쿠키를 저장하는 System.net.cookieContainer를 작성해야합니다. 이것은 매우 간단합니다.

CookieContainer container = new CookieContainer();

// Create web request
request.CookieContainer = container;

// Create next web request
nextRequest.CookieContainer = container;

// And so on
...

모든 httpwebrequest 객체에 대해 CookieContainer 객체를 재사용하고 나중에 사용하기 위해 메모리에 보관하십시오.

CookieContainer는 직렬화 할 수 있으므로 필요한 경우 디스크에 지속될 수 있습니다. 이를 통해 사용자가 응용 프로그램을 다시 시작하는 경우에도 쿠키를 유지할 수 있습니다.

또는 페이지가 쿠키를 사용하지 않고 대신 URL에 세션 ID를 저장하는 경우, 현명한 페이지의 URL에서 세션 ID를 따라 유지해야합니다. URL에 추가하면 작동해야합니다. :-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top