silverlight - Http 托管 silverlight 应用跨域访问 https 托管服务

标签 silverlight http https cross-domain

我正在尝试使用网络客户端(或 webRequest.Create,结果相同)调用休息服务。

正在使用 url localhost:13451 在我的机器上开发 Silverlight 应用程序

休息服务使用 https://contoso.com/Services/Service.csv 托管

获取实体列表的方法具有定义如下的 url 结构:

https://contoso.com/Services/Service.csv/username@password/?StartDate=10-11-2012

https://contoso.com/ 的 crossdomain.xml 文件可通过 https://contoso.com/crossdomain.xml 访问

并包含这样的内容:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

因此,当我尝试发出请求时,Silverlight 会抛出一个安全异常,但没有说明问题所在。有什么解决办法吗?

最佳答案

当您需要向服务添加 SL 服务引用时,将其放在您站点的根目录中: 客户端访问策略.xml

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

和 crossdomain.xml 包含:

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

并确保它可以通过浏览器通过 http 或 https 访问!

关于silverlight - Http 托管 silverlight 应用跨域访问 https 托管服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017886/

相关文章:

facebook - 如何使用 Node.js 发布到 facebook 服务器端

node.js - 将 https 代理配置为仅允许 TLS1.2 用于传出请求

java - POST 请求的安全性

c# - 交互触发 wp8.1(silverlight) 时的 xaml 解析错误

silverlight - Silverlight 中的 Loaded 事件的相反是什么?

php - 将数据从 Arduino 发布到网站

java - 如何将缓存控制添加到 @RestController servlet 路径?

javascript - 如何用 'http get' 更新 $scope 变量?

Silverlight 工具包 - 带主题的 ChildWindow

c# - 如何初始化 MEF ServiceLocator.Current?