나는 (intranet.mydomain.net에서 호스팅) 실버 애플 리케이션과에서 WCF 서비스가 (webservices.mydomain.net)실버 WCF 서비스 도메인 간 질문
내가 크로스 사이트 정책 파일이 필요하십니까? 그렇다면 intranet.mydomain.net의 액세스 만 허용하는 것이 어떻게됩니까?
나는 (intranet.mydomain.net에서 호스팅) 실버 애플 리케이션과에서 WCF 서비스가 (webservices.mydomain.net)실버 WCF 서비스 도메인 간 질문
내가 크로스 사이트 정책 파일이 필요하십니까? 그렇다면 intranet.mydomain.net의 액세스 만 허용하는 것이 어떻게됩니까?
예, 서비스 도메인 (webservices.mydomain.net)의 ROOT에 clientaccesspolicy.xml 파일이 필요합니다.
기본적으로 Silverlight는 동일한 도메인 또는 사이트에서 웹 서비스에 대한 호출을 지원합니다. 동일한 도메인은 호출이 동일한 하위 도메인, 프로토콜 및 포트를 사용해야 함을 의미합니다. 이는 보안상의 이유로 도메인 간 위조를 방지합니다.
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
이는 intranet.mydomain.net의 요청 허용 것 : 여기
는 예제 파일입니다.편집
그것은 요구되었습니다 어떻게 것이라고 나는 두 WCF 서비스가있는 경우이 작동합니까? /ServiceA/a.svc 및 /ServiceB/b.svc이고 ServiceA는 누구든지, 어디서나, ServiceB는 내 인트라넷에서만 작동하도록하고 싶습니다.
정책 파일은 다음과 같을 것이다 :
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
</allow-from>
<grant-to>
<resource path="/ServiceA/" include-subpaths="true"/>
</grant-to>
</policy>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/ServiceB/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
다음과 같은 링크를 체크 아웃 할 수 있습니다에 대한 팀 호이어으로 '실버 크로스 도메인 정책 파일을 사용하는 방법'.
나는 자신의 WCF 서비스를 작성 고려할 것 : 여기
http://silverlight.net/learn/videos/all/how-to-use-cross-domain-policy-files-with-silverlight/
그뿐만 아니라 예를 가지고 통해 당신이 읽을 수있는 팀 호이어의 블로그에서 다른 페이지입니다 실버 라이트 앱과 함께 살며 외부 WCF 서비스 요청을 처리합니다. 이렇게하면 아무 것도 열어 두지 않고 제어 서비스에 대한 통신 만 허용됩니다 (언급 한 서비스가 사용자의 통제하에있을지라도).이 방법은 다른 서비스가 손에없고 자주 변경 될 수있는 경우에도 유용합니다. 당신은 자신의 서비스를 통해 이것이 어떻게 처리되는지를 제어 할 수 있으며 실버 라이트 컨트롤을 업데이트 할 필요가 없습니다 (변경 사항이 과감하지 않다는 가정하에).
어떻게 것 내가 두 WCF 서비스가있는 경우이 작동합니까? '/ ServiceA/a.svc'와'/ServiceB/b.svc'를 사용하고 ServiceA를 누구든지, 어디서나, 그리고 ServiceB가 내 인트라넷에서만 작동하도록하고 싶습니다. 크로스 도메인 파일에서 가능합니까? – Nate
나는 나의 대답을 편집했다. – DaveB
Safari에서 작동합니까? 사파리가 크로스 도메인 xml-s를 기본적으로 지원하지 않는 것 같습니다. 물론, 중요하지 않을 수도 있습니다 ... – Gyuri