在Silverlight
4应用程序中,我们可以在客户端调用本网站的WebService
,这是没有限制的,正如我们上面例子所示。那么,我们该如何配置我们的WebService并使其能被其它域名的访问者正确调用?为达到这样的目的,我们可以在网站的根目录下创建一个名为clientaccesspolicy.xml的文件,这个文件表明哪些域可以允许访问你的Webservice,下面我们看看下面的例子:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
当你向上面一样配置文件时,第三方的Silverlight应用程序就可以访问你的WebService。相反,你可以限制几个域的Silverlight访问你的WebService,如下面的例子,只有 www.somecompany.com 和 www.someothercompany.com域名承载的Silverlight可以访问你的WebService。
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://www.somecompany.com" />
<domain uri="http://www.someothercompany.com" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
当然,这里你可以使用通配符来拓展功能,例如*.somecompany.com允许mail.somecompany.com或sail.somecompany.com访问。进一步发现,如果我们把要对外公布的Service都放到一个service文件夹中,此时我们就只允许跨域用户访问这个文件夹中的Service,设置代码如下:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/services/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
分享到:
相关推荐
1.文件夹SilverlightFrmWcf : winform程序托管wcf服务Silverlight调用wcf 跨域解决方案 (1)解决方案frmWcfService:winform程序托管wcf服务 (2)Silverlight项目调用wcf解决方案 2.文件夹SilverlightWCFDemo: iis...
在本文中,我们将深入探讨如何在Silverlight 2应用程序中实现跨域调用Web服务。首先,理解跨域调用的背景非常重要。由于浏览器的安全策略,JavaScript和由此产生的技术(如Silverlight)默认禁止跨域请求,以防止...
在IT领域,Silverlight和WCF(Windows Communication Foundation)是微软提供的重要技术,用于构建丰富的客户端应用程序和实现高效的服务通信。然而,由于浏览器的安全限制,当Silverlight应用尝试与不同域的WCF服务...
本文将深入探讨Silverlight跨域访问的问题,以及如何有效地解决它。 首先,理解Silverlight的同源策略是至关重要的。如同JavaScript一样,Silverlight也遵循同源策略,这意味着它只能访问与包含它的HTML页面来自...
通过理解并正确配置Silverlight的跨域策略文件,开发者可以实现跨域数据交换,比如从不同源加载数据、调用Web服务等,从而扩展应用程序的功能和交互性。在实际开发中,这是一项至关重要的技能,因为它关系到...
总结来说,Silverlight间接WCF服务调用是一种有效的策略,它允许在不同项目之间共享服务逻辑,同时解决跨域调用的问题。通过理解上述步骤和注意事项,开发者可以更好地设计和实施这样的解决方案,提高应用程序的可...
由于浏览器的安全策略,Silverlight应用需要跨域调用WCF服务。这需要在服务端配置跨域策略文件(crossdomain.xml),并确保服务支持跨域请求。 7. **异常处理和状态管理**: Silverlight调用WCF服务时,需要注意...
如果需要跨域调用,你需要在Silverlight应用的配置文件(*.xaml.cs)中添加适当的权限设置。 此外,为了确保良好的用户体验和性能,合理设计调用流程和避免频繁的交互是至关重要的。理解并熟练掌握这种通信方式,...
4. **使用Silverlight客户端代码调用服务** 生成的服务引用会在你的Silverlight项目中创建一个命名空间,通常为`ServiceReference1`。在这个命名空间下,你可以找到一个代理类,如`Service1Client`。实例化这个类,...
跨域部署Silverlight时,由于浏览器的安全策略,可能会遇到一系列挑战。Silverlight是一种富客户端技术,它...通过以上步骤,您可以成功地实现跨域部署的Silverlight应用,并且确保其与JavaScript的交互功能正常运行。
1. **设置安全策略**:由于跨域调用的安全限制,你需要为Silverlight应用配置适当的权限策略文件,允许它与本地的OCX控件进行通信。 2. **托管代码与本机代码交互**:使用C++/CLI(Managed C++)编写一个中间层,...
总之,`crossdomain.xml`和`clientaccesspolicy.xml`是Silverlight跨域访问的核心,它们决定了哪些源的Silverlight应用可以与服务器进行通信。正确理解和配置这些文件是确保Silverlight应用能顺利实现跨域操作的基础...
标题"arcgis api for silverlight跨域文件"直指一个关键问题——跨域资源共享(CORS)。在Web开发中,浏览器实施同源策略,这意味着JavaScript只能访问与加载页面相同的源(协议+域名+端口)的资源。然而,当使用...
在IT行业中,Silverlight是一种基于.NET Framework的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、用户体验...修复这些问题后,Silverlight应用应该能够成功调用控制台宿主机上的WCF服务,实现跨域通信。
**WCF服务宿主及其跨域问题解决实例** 在分布式系统开发中,Windows Communication Foundation (WCF...在实际项目中,可能还需要考虑安全性、性能优化和其他高级特性,但这些基础知识已经足够帮助你开始进行跨域调用。
这可能涉及配置跨域策略文件(clientaccesspolicy.xml),以允许Silverlight从不同源调用服务。 总结来说,这个“silverlight调用WCF服务的简单例子”展示了如何通过HTTP协议在Silverlight客户端和WCF服务之间进行...
因此,在Silverlight中调用WCF服务时,我们需要确保服务端设置了适当的跨域策略文件,如ClientAccessPolicy.xml或crossdomain.xml,其中应包含允许Silverlight应用访问的源信息。 接下来,我们关注WCF服务以控制台...
在IT领域,Silverlight是一...3. **安全性问题**:由于跨域限制,Silverlight默认不允许跨域调用JavaScript。为了启用这一功能,你需要在HTML页面中设置`<object>`标签的`allowScriptAccess`属性为`always`。 ```html ...
4. **调用服务**:在Silverlight客户端代码中,实例化代理类,并通过代理类的方法调用WCF服务。由于Silverlight的安全限制,所有的网络通信都是异步的,因此需要使用BeginXXX和EndXXX方法或者async/await关键字进行...
Silverlight跨域访问Java,通信中传递对象一直是难题。对象一旦遇到Date、复杂组合类型,容器类型就很难操作。 此封装使用JSON作为中间协议,以最简方式达到目标。可以转换日常使用中的任意复杂类型通信,成功解决C#...