Silverlight 不适用于网络的不同 IP 段

本文关键字:IP 不适用 适用于 网络 Silverlight | 更新日期: 2023-09-27 18:32:58

我有一个 Silverlight 应用程序,当它安装在服务器的不同 IP 段中时,它无法登录。(客户端位于 192.168.77.xx 中,服务器位于 192.168.40.xx 中)。

当客户端在同一段上时,它运行平稳。

客户端可以对服务器进行 ping、telnet 和远程桌面操作。它还可以从服务器登录其他应用程序,但不能登录到我的 Silverlight 应用程序。

有谁知道如何使用不同的IP段运行Silverlight应用程序?

Silverlight 不适用于网络的不同 IP 段

为了防止跨站点请求伪造,默认情况下,Silverlight 4(及更高版本)仅允许对图像和媒体以外的所有请求进行源站点通信。若要使 Silverlight 控件能够访问另一个域中的服务,该服务必须显式选择加入以允许跨域访问。

因此,应将ClientAccessPolicy.xmlCrossDomain.xml放在承载 Silverlight 应用程序的网站的根目录中。

下面是ClientAccessPolicy.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>

这是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="SOAPAction,Content-Type"/>
</cross-domain-policy>

阅读此处,了解如何跨域边界提供服务。