문제

내가 만들려고 하는 된 플러그 가능한/호출 세션 ASP.NET 웹사이트를 나중에 구문 분석 HTML 양식을 통해 url 을 params(이 부분은 내가 수행하는 방법을 알고),그러나 내가 이해하지 못하는 방법을 분석하고 쿠키를 설정과 같은 세션 id 입니다.에 Fiddler,그것을 보여줍니다 ASP.NET 세션 ID 를 반환하고를 통해 설정 쿠키에서 요청에 대한 응답의/url 경로,하지만 어떻게 추출할 수 있 이 세션 id 를 설정으로 그것을 위해 쿠키를 다음 된 플러그 가능한?이 설정은 쿠키 헤더견에 호출.헤더입니다.키만이 있는 직접 경로를 분석은?감사합니다!

도움이 되었습니까?

해결책

니다.NET 프레임워크에서 쿠키를 관리 할 수 있습니다.없는 우려와 함께 자신을 구문 분석합 쿠키 정보를 헤더를 추가하거나 쿠키 헤더를 요청합니다.

을 저장소 및 보내신의 세션 ID,사용 CookieCookieContainer 클래스를 저장하고 있는지 확인 후 보내는 쿠키를 가진 모든 요청을 합니다.

다음 예에서 수행하는 방법을 보여줍니다.이 CookieContainer,'cookieJar'공유할 수 있습에 걸쳐 여러 도메인을 요청합니다.일단 당신이 그것을 추가 요청을 개체에 대한 참조는 그것도 추가될 것입 response 개체 경우 응답이 반환됩니다.

CookieContainer cookieJar = new CookieContainer();

var request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
request.CookieContainer = cookieJar;

var response = request.GetResponse();

foreach (Cookie c in cookieJar.GetCookies(request.RequestUri))
{
    Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value);
}

의 출력 이 코드가 됩니다:

Cookie['PREF']: ID=59e9a22a8cac2435:TM=1246226400:LM=1246226400:S=tvWTnbBhK4N7Tlpu

다른 팁

Dan Herbert의 대답은 정말 도움이되었습니다. 도움을 주셔서 감사합니다.

내 사용법을 게시하고 싶다 - 어느 시점에서 어떤 것이 도움이되기를 바랍니다. 내 요구 사항은 첫 번째 HTTP 포스트 응답에서 두 번째 HTTP Post 요청으로 쿠키를 다시 보내야한다는 것입니다.

1st :

CookieContainer cookieJar = new CookieContainer();
request.CookieContainer = cookieJar;
....

CookieCollection setCookies = cookieJar.GetCookies(request.RequestUri);

두 번째 :

CookieContainer cc = new CookieContainer();
cc.Add(setCookies);    
request.CookieContainer = cc;

나는 같은 문제가 있습니다 (아마존과 함께) 다음 regexp를 사용합니다.

string regexp = "(?<name>[^=]+)=(?<val>[^;]+)[^,]+,?";);
MatchCollection myMatchCollection = Regex.Matches(cookiesStr, regexp);
foreach (Match myMatch in myMatchCollection)
{
string cookieName = myMatch.Groups["name"].ToString();
string cookieVal = myMatch.Groups["val"].ToString();
Cookie cookie = new Cookie(cookieName, cookieVal);
cookies.Add(cookie);
}

쿠키 이름/값에만 관심이 있습니다 ...

행운을 빕니다 엘리아

Hum 나는 틀렸을 수도 있지만 최근에 관찰하고있는 것에서

첫 번째 응답의 쿠키는 302 (리디렉션) 상태의 경우 헤더 (예 : 일부 세션 ID ...)에 나오는 쿠키로 '세트 쿠키'를 포함하지 마십시오.

AutoFollerRedirect가 True로 설정된 경우 세트 쿠키가 처리되고 자동으로 수행되는 후속 요청에는 첫 번째 통화에서 Set Cookie가 정의한 쿠키가 포함됩니다.

AutoFollerRedirect가 False로 설정되어 있으면 첫 번째 요청은 세트 쿠키에 의해 쿠키를 제자리에 놓지 않습니다. 그리고 나는 또한 다음 요청에 해당 쿠키가있는 유일한 방법은 파스입니다. 세트 쿠키?

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