来自silverligh4应用程序的跨域Web请求会引发安全性异常

时间:2013-05-06 16:53:25

标签: silverlight security silverlight-4.0

我有silverlight4应用程序向其他网络服务器发出跨域请求,作为论坛stackoverflow帖子和MSDN,silverlight限制了跨域请求。但我发现在silverligh4及更高版本中你可以通过clientaccesspolicy.xml添加一个异常来发出这些请求。我添加了以下xml作为我的clientaccesspolicy.xml

<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy> 

xml文件保留在我的应用程序的根目录下。但是在接下来的行中,我仍然抛出安全异常

HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);

任何人都可以解释一下我在这里可能缺少的东西。我知道可以在应用程序中托管另一个本地服务并通过它提出请求。但我不想去那个解决方案。

1 个答案:

答案 0 :(得分:1)

我猜SL由于某种原因没有读取XML。

我建议您启动Fiddler并检查Silverlight发出的请求及其响应。在访问来自不同域的数据时,它应该寻找XML文件。如果它获得404(或其他错误),它将抛出安全异常。

另外......为了确保......我希望你在开始时没有忘记<?xml version="1.0" encoding="utf-8"?>吗?并且您确实记得XML文件必须位于Silverlight应用程序将访问的服务器上,而不是托管Silverlight应用程序的服务器,对吧? ;)