zoukankan      html  css  js  c++  java
  • URL资源跨域访问 跨域使用session信息

    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,crossdomain.xml的具体说明,请大家参看MSDN  http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

    这几天想用silverlight访问网站的xml文件,以及跨域使用session信息,一直提示安全性错误,搜索了很多,终于解决了。

    得在站点根目录添加一个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 include-subpaths="true" path="/interface"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>

    其中/interface 为需要访问的文件所在的路径,并且这个文件需要放在将要访问的站点根目录。

    我看网上很多写的include-subpaths="false"。我试了,貌似不行,也不知道是什么原因。

    更多参考资料:

    http://silverlightchina.net/html/tips/2009/0916/184.html

    http://silverlightchina.net/html/tips/2010/0107/563.html

    这个微软详细说明:

    http://msdn.microsoft.com/zh-cn/library/cc645032(v=vs.95).aspx

    Top
    收藏
    关注
    评论
  • 相关阅读:
    CTSC2018滚粗记
    HNOI2018游记
    NOIWC 2018游记
    PKUWC2018滚粗记
    HNOI2017 游记
    NOIP2017题解
    [HNOI2017]抛硬币
    [HNOI2017]大佬
    NOIP难题汇总
    [NOI2013]树的计数
  • 原文地址:https://www.cnblogs.com/alanjl/p/4042115.html
Copyright © 2011-2022 走看看