• Silverlight跨域问题的解决方法


    【原文来自于http://hi.baidu.com/heiru/blog/item/7c61b01c54b9f18186d6b61d.html,写在这里以做备份,在原文的基础上做了适当编辑。】

    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.

    这两个文件的格式需要是utf-8的,并且需要放在根目录,即如果你的IIS版本是6并且你是新建的虚拟目录,这时你需要将这两个文件放到C:\inetpub\wwwroot中,而不是放到虚拟目录的根目录。


    ClientAccessPolicy.xml文件内容如下:

    ClientAccessPolicy.xml的内容
    <?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的格式非常简单,其根节点为<cross-domain-policy> ,其下包含一个或多个<allow-access-from>节点,<allow-access-from>有一个属性 domain,其值为允许访问的域,可以是确切的 IP 地址、一个确切的域或一个通配符域(任何域)。

    CrossDomain.xml Demo
    <?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>

    关于这两个文件的更多内容可以看MSDN http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

  • 相关阅读:
    ZUCC2129 The Tree of Power(树形DP)
    ZUCC Flower Name(01字典树)
    JDBC 测试01
    CF1355E Restorer Distance(三分)
    CF1352E Special Permutation(桶排序+前缀和)
    CF1350E Orac and Game of Life(BFS)
    CF1350D Orac and Medians(找规律)
    Python机器学习(五十七)SciPy 积分
    Python机器学习(五十六)SciPy fftpack(傅里叶变换)
    Python机器学习(五十五)SciPy 常量
  • 原文地址:https://www.cnblogs.com/zhangronghua/p/SilverLightCorssDomainIssue.html
Copyright © 2020-2023  润新知