博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Silverlight跨域数据访问

Posted on 2010-04-19 16:17  Mr.Night  阅读(242)  评论(0)    收藏  举报

因为Silverlight是Web客户端技术,所以它运行于浏览器的安全沙箱(Sand Box)里,并在访问策略上有所限制。限制的其中之一就是跨域访问。除非某个服务设置成允许跨域调用,否则如果你的应用程序与想要调用的服务处于不同的域名,你是没有办法访问它的。设置这个的途径通常是通过跨域策略文件。Silverlight与其它富客户端插件一样,都要遵循这种策略。

如果我们的Silverlight应用程序所要访问的服务没有设置跨域访问策略的话,那么它是不能对该服务进行访问的。

对服务进行启用允许跨域访问,则需要创建一个名为clientaccesspolicy.xml的文件,内容如下:

 

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  
<cross-domain-access>
    
<policy>
      
<allow-from http-request-headers="*" >
        
<domain uri="*"/>
      
</allow-from>
      
<grant-to>
        
<resource path="/" include-subpaths="true"/>
      
</grant-to>
    
</policy>
  
</cross-domain-access>
</access-policy>

 

 

将该文件放到服务所在的wwwroot跟目录下。

注意:文件位置一定要正确,将其放在服务所在的应用程序目录下是不行的。