`
gstarwd
  • 浏览: 1536432 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SilverLight跨域访问及其常用的几种解决方法

    博客分类:
  • .NET
阅读更多

SilverLight 出于对安全性的考虑默认情况下对URL的访问进行了严格的限制,只允许访问同一子域下的URL资源。

下表列出了Silverlight 2.0 中 URL 访问规则:

WebClient对象 Media、images、ASX XAML 文件、Font 文件 流媒体
允许的协议 HTTP, HTTPS HTTP, HTTPS, FILE HTTP, HTTPS, FILE HTTP
跨协议访问 不允许 不允许 不允许 不允许来自HTTPS的访问
跨Web域访问 不允许 如果不是来自HTTPS则允许 不允许 允许
跨安全区域访问(Windows) 不允许 不允许 不允许 不允许
跨安全区域访问(Macintosh) 不允许 允许 不允许 允许
允许重定向 同域允许 允许 同域允许 不允许


如果WCF与SilverLight Web不是在同一站点,那么我们就要在被访问端的根域放上两个XML文件clientaccesspolicy.xml,crossdomain.xml
如果要通过WebClinet访问另一站点的资源,那么需要在被访问站点放上域访问策略xml文件,不然在Complete事件里面的事件参数报告空对象引用。

clientaccesspolicy.xml文件格式如何,切忌最好要将编码设置为utf-8,否则极易出错

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

crossdomain.xml文件格式

crossdomain.xml的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性 domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。下边是两个例子:

程序代码
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="http://www.lishewen.com.cn/ " />
<allow-access-from domain="*.lishewen.com.cn" />
<allow-access-from domain="222.217.221.16" />
</cross-domain-policy>

程序代码
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

第二个例子允许任何域的访问。对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中!

如:http://bbs.lishewen.com.cn/crossdomain.xml


关于clientaccesspolicy.xml,crossdomain.xml的具体说明,请大家参看MSDN http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

分享到:
评论

相关推荐

    解决SilverLight跨域访问问题

    要解决Silverlight的跨域访问问题,我们可以采取以下几种方法: 1. **配置服务器端的跨域策略文件**: - 创建一个名为`clientaccesspolicy.xml`(对于HTTP)或`crossdomain.xml`(对于HTTPS)的文件,该文件应位于...

    解决Silverlight跨域访问问题

    本篇文章将深入探讨如何解决Silverlight通过TCP协议访问自托管的WCF(Windows Communication Foundation)服务时遇到的跨域访问限制。 首先,我们需要理解什么是跨域问题。在Web应用中,浏览器实施同源策略,禁止一...

    Silverlight跨域解决的文件(直接放入发布网站的根目录)

    Silverlight跨域解决的文件(直接放入发布网站的根目录) Silverlight跨域解决的文件(直接放入发布网站的根目录) Silverlight跨域解决的文件(直接放入发布网站的根目录) Silverlight跨域解决的文件(直接放入发布网站的...

    Silverlight 跨域策略文件.zip

    然而,与许多其他Web技术一样,Silverlight遵循同源策略,这是一种安全机制,限制了JavaScript和类似技术访问不同源(域名、协议或端口)的资源。当涉及到跨域通信时,Silverlight同样需要遵循一定的规则和配置,这...

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

    本资料包“silverlight wcf 跨域访问 内含WORD图解和跨域文件”正是为了解决这一问题,通过详细的文档和示例文件,帮助开发者理解和解决跨域访问的挑战。 首先,让我们理解什么是跨域访问。在Web开发中,浏览器的...

    Silverlight跨域文件

    在开发Web应用,尤其是使用Microsoft Silverlight技术时,开发者可能会遇到跨域问题。"跨域文件"是解决这种问题的关键工具。本文将深入探讨Silverlight跨域策略、问题的成因以及如何设置和使用跨域文件。 首先,...

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

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

    arcgis api for silverlight跨域文件

    在使用ArcGIS API for Silverlight进行跨域操作时,有以下几点需要注意: 1. **配置服务端**:确保ArcGIS Server或其他地图服务提供者允许来自你应用的源的请求。这通常涉及编辑服务器的Web.config文件或通过管理...

    Silverlight 跨域文件

    Silverlight的跨域文件,包括`crossdomain.xml`和`clientaccesspolicy.xml`,是解决这个问题的关键。这两个文件允许Silverlight应用从不同源获取数据,从而扩展了它的功能范围,但同时也需要正确配置以确保安全。 ...

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

    **WCF服务宿主及其跨域问题解决实例** 在分布式系统开发中,Windows Communication Foundation (WCF) 是Microsoft提供的一种强大的服务导向架构,用于构建高度互操作的服务。本实例主要探讨的是如何在Silverlight...

    Silverlight2 跨域调用Web服务的方法

    由于浏览器的安全策略,JavaScript和由此产生的技术(如Silverlight)默认禁止跨域请求,以防止恶意网站通过脚本访问其他网站的数据。然而,有时出于开发需求,我们需要允许这样的行为,比如当我们的Silverlight应用...

    Silverlight连接数据库几种方法

    它可以生成服务层,使得在Silverlight客户端直接调用服务器端的业务逻辑和数据访问代码成为可能。通过WCF RIA Services,你可以定义操作(Operations)并自动处理数据绑定和验证,提高了开发效率。 3. **Web服务 ...

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

    默认值`NoAccess`意味着禁止跨域脚本访问,而`ScriptableOnly`则表示只有被标记为`ScriptableMember`的Silverlight对象和方法才能被跨域脚本调用。 请注意,启用跨域访问的同时也增加了安全风险,因为这可能使您的...

    Silverlight常见问题解决方法集锦

    ### Silverlight常见问题解决方法集锦 #### 一、ASP.NET与Silverlight的兼容性 Silverlight作为一款浏览器插件,具有广泛的网页嵌入能力,包括ASP.NET在内的各种Web页面均可无缝集成Silverlight组件。这一特性意味...

    解决silverlight无法卸载的方法

     方法一:下载Windows Installer clean up工具并安装 在开始菜单中打开它并找到与silverlight相关的项目 将其删除 完成后重新启动计算机 再次安装Microsoft Silverlight并尝试更新 "&gt;情况一及解决方法: ...

    silverlight 资料及其code

    Silverlight是一种已退役的Web应用程序框架,由微软开发,用于创建和部署丰富的互动用户体验,特别是在浏览器环境中。这个压缩包文件包含了一系列与Silverlight相关的代码和资料,帮助开发者深入理解和使用...

    silverlight访问sql server的com接口

    在IT领域,Silverlight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者创建交互性强、用户体验丰富的Web应用。而SQL Server是微软提供的一个功能强大的关系型数据库管理系统,广泛应用于数据存储和...

    silverlight 数据访问方式

    本篇文章将详细探讨Silverlight中的三种主要数据访问通信方式:WebClient、WCF(Windows Communication Foundation)以及HttpRequest。 1. WebClient类 WebClient是.NET Framework提供的一种简单易用的数据访问方式...

    Silverlight捕捉WCF异常

    本篇文章将深入探讨如何在Silverlight应用中处理WCF服务可能出现的异常,特别是当WCF服务以控制台程序为宿主并涉及跨域访问时的问题。 首先,让我们理解跨域访问。在Web开发中,跨域是指浏览器的安全策略限制了...

Global site tag (gtag.js) - Google Analytics