`
star65225692
  • 浏览: 267327 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

silverlight4实现跨域服务调用

阅读更多

      在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>

分享到:
评论

相关推荐

    silverlight调用wcf服务跨域解决方案 demo

    1.文件夹SilverlightFrmWcf : winform程序托管wcf服务Silverlight调用wcf 跨域解决方案 (1)解决方案frmWcfService:winform程序托管wcf服务 (2)Silverlight项目调用wcf解决方案 2.文件夹SilverlightWCFDemo: iis...

    Silverlight2 跨域调用Web服务的方法

    调用Web服务是一种常见的功能,在Silverlight2中也是可以调用别的网站的Web服务的。...要实现跨域调用Web服务,需要在被调用的Web服务的网站跟目录下放置一个策略配置文件:clientaccesspolicy.xml。该文件的内容如下:

    silverlight wcf 跨域访问 内含WORD图解和跨域文件

    这是一个silverlight wcf 跨域访问的实例的截图说明 内含WORD图解和跨域文件,可以帮助大家完全轻松的学习如何跨域访问

    跨域部署Silverlight时需要注意的问题

    当我们的Silverlight程序(.xap)发布地址和网页发布地址处于不同服务器上(跨域状态)时,由于安全机制在Silverlight和Javascript调用时会出现一些问题。

    Silverlight与Java通信远程调用封装

    Silverlight跨域访问Java,通信中传递对象一直是难题。对象一旦遇到Date、复杂组合类型,容器类型就很难操作。 此封装使用JSON作为中间协议,以最简方式达到目标。可以转换日常使用中的任意复杂类型通信,成功解决C#...

    问题代码 Silverlight调用控制台宿主WCF Demo

    请大家帮助解决!Silverlight调用控制台wcf跨域问题

    WCF服务宿主及其跨域问题解决实例

    解决silverlight 调用wcf宿主控制台 windows服务跨越问题。

    IIS6.0 silverlight网站部署方法

    2、注意更改您的silverlight的“web引用”的URL,使其与你发布的真实域名一致,否则silverlight无法正确调用您的WebService(因为silverlight不能跨域调用,所以WebService要与silverlight部署在同一个域内)。...

    在非IIS宿主中发布可以为SILVERLIGHT访问的WCF

    然后等我们把EXE一运行,照往常一般在Silverlight里引入,顺利,打开页面,调用。 嗯?异常了。仔细一看,原来是跨域问题,这个BUG简单,只需把跨域策略文件复制到根目录就行了。 嗯?根目录?可我是用Winform的...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2 Visual StudioIDE 2.2.1 解决方案资源管理器 2.2.2 ...

    ASP.NET4高级程序设计(第4版) 3/3

    1.2.5 Silverlight 14 1.3 总结 15 第2章 Visual Studio 16 2.1 Visual Studio 16 2.1.1 网站和Web项目 17 2.1.2 创建无项目文件的网站 18 2.1.3 设计网页 21 2.2 Visual StudioIDE 26 2.2.1 解决...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    1.3.4 “认我测”质检服务平台的设计和实现 8 1.4 本文的结构安排 8 第二章 多窗口类浏览器设计 11 2.1 多窗口类浏览器需求分析 11 2.1.1 Activity简介 11 2.1.2 Fragment简介 11 2.1.3 多窗口类浏览器需求 12 2.2 ...

Global site tag (gtag.js) - Google Analytics