हां, आपको अपने सेवा डोमेन (webservices.mydomain.net) के रूट में clientaccesspolicy.xml फ़ाइल की आवश्यकता होगी।
डिफ़ॉल्ट रूप से, सिल्वरलाइट उसी डोमेन या मूल साइट पर वेब सेवाओं पर कॉल का समर्थन करता है। उसी डोमेन का अर्थ है कि कॉल को उसी उप डोमेन, प्रोटोकॉल और पोर्ट का उपयोग करना चाहिए। यह सुरक्षा कारणों से है और क्रॉस-डोमेन जालसाजी को रोकता है।
<?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 और मैं सेवा ए को किसी भी, कहीं भी, और सेवा बी को केवल अपने इंट्रानेट से काम करने के लिए खोलना चाहता हूं?
आपकी पॉलिसी फ़ाइल इस प्रकार दिखाई देगा:
<?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 सेवा है यह काम करेंगे? '/ ServiceA/a.svc' और'/serviceB/b.svc' और मैं सेवा इंटनेट से केवल काम करने के लिए सेवा ए को किसी भी, कहीं भी, और सेवा बी के लिए खोलना चाहता हूं? क्या यह क्रॉसडोमेन फ़ाइल से संभव है? – Nate
मैंने अपना जवाब संपादित कर लिया है। – DaveB
क्या यह सफारी पर काम करेगा? ऐसा लगता है जैसे सफारी डिफ़ॉल्ट रूप से क्रॉस डोमेन xml-s का समर्थन नहीं करता है। बेशक, इससे कोई फर्क नहीं पड़ता ... – Gyuri