2010-06-21 3 views
1

인트라넷 시스템 (.NET 3.5)에서 작업하고 있습니다. 기본 페이지는 표준 ASP.NET 서버에서 제공됩니다. 이 페이지에서 Ajax를 사용하여 다른 컴퓨터에서 실행중인 WCF 서비스에 연결하고, 데이터를 검색하고, CRUD 작업을 수행하고 싶습니다. 이는 일반적인 Ajax 관련 작업입니다.JSONP 및 한 서버에서 다른 서버로 쿠키 공유?

내가 해결하려고하는 문제는 다음과 같습니다. ASP.NET 서버에서 설정 한 쿠키를 WCF 서비스에 대한 요청에 포함시킬 수 있습니까? 그렇다면 어떻게?

JSONP는 표준 < 스크립트 src = "MyAjaxCall? SomeData = SomeValue"> 태그 내에서 Ajax 요청을 "래핑"하여 XSS 제한을 우회합니다. 이를 염두에두고, MyAjaxCall에 어떤 쿠키 (있는 경우)가 포함될 것인가에 대해서는 브라우저의 자비하에있는 것처럼 보입니다. 쿠키는 ASP.NET 서버에서 비롯된 것이기 때문에 브라우저는 WCF를 호출 할 때 쿠키를 포함하지 않습니다.

인트라넷 응용 프로그램이므로 도메인 와일드 카드 (* .mydomain.com)를 사용하여 여러 컴퓨터에서 쿠키를 공유 할 필요가 없습니다. 클라이언트는 간단한 네트워크 이름으로 컴퓨터에 액세스하고 있거나 IP 주소를 직접 입력하십시오.

편집 : 그것은 다소 세련 :) 느낌 그래도 수동 쿠키의 페이로드를 잡고 URL이 해결 방법을 제한 (유일한 방법처럼 보인다에 그것을 잼 JS를 사용하기 때문에, 줄리안의 답변을 받아

답변

1

쿠키에 문제가 있다고 가정하면 완벽하게 옳습니다.

유일한 해결책은 실제로 관심있는 값을 JSONP 요청의 쿼리 문자열에 전달하는 것입니다. 즉, 클라이언트 쪽에서 쿠키를 검사하고 필요한 데이터를 추출한 다음이를 "손으로"URL에 추가해야합니다.

관련 문제