HttpWebRequest를 통해 다른 서버에 GET 요청을 보내는 ASP.NET MVC 작업이 있습니다. 새 요청에서 원래 작업 요청에 모든 쿠키를 포함하고 싶습니다. 원래 요청의 System.Web.HttpCookies 중 일부에 빈 도메인 값 (예 : "")이있어 문제가 발생하지 않는 것 같습니다. 이름, 값, 경로 및 각 쿠키의 도메인을 사용하여 System.Net.Cookie를 만들고이를 요청의 CookieContainer에 추가하면이 오류가 발생합니다.빈 도메인이있는 HttpWebRequest 쿠키
"System.ArgumentException : {0} '빈 문자열이 될 수 없습니다 매개 변수 이름 :. cookie.Domain "여기
이 (쿠키가 추가 될 때) 같은 오류가 발생합니다 일부 코드입니다 :
var request = (HttpWebRequest)WebRequest.Create("http://www.whatever.com");
request.Method = "GET";
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add (new Cookie ("MyCookieName", "MyCookieValue", "/", ""));
편집
I 일종의 원래 HttpCookie의 null 또는 빈 문자열 값 대신 도메인에 "localhost"를 사용하여이를 수정했습니다. 따라서 쿠키 도메인에 빈 도메인이 작동하지 않는 이유는 무엇입니까? HttpCookie는 빈 값을 사용하여 localhost를 나타 냅니까? 아니면이 문제에 대한 다른 수정을 찾아야합니까?
정확히 무엇을하려합니까? 다른 서버에 요청을 보낼 때 컨테이너에 도메인 "localhost"가있는 쿠키를 설정해도 작동하지 않습니다. 쿠키는 전송되지 않습니다. 시나리오를 설명하고 달성하려는 목표를 설명 할 수 있다면 더 나은 해결책이 제시 될 것입니다. – feroze
크로스 사이트 스크립팅을위한 패스 스루 페이지를 만드는 것처럼 들리겠습니까? 아래에 배경 정보가 포함 된 답변을 게시 해 드리겠습니다. 지금 어떻게 작동하는지 https://en.wikipedia.org/wiki/HTTP_cookie를 확인하십시오. 도메인은 매우 중요합니다. – BrainSlugs83
@Angelisho는 아래의 좋은 대답을 가지고 있습니다. 나는 그의 대답을 찾기 전에 나의 시험에서 같은 결론에 도달했다. 기본적으로 : request.Headers.Add (HttpRequestHeader.Cookie, "MyCookieName = MyCookieValue"); – Brain2000