我有一个 Silverlight 应用程序,当它安装在与服务器不同的 IP 段中时无法登录。(客户端在 192.168.77.xx,服务器在 192.168.40.xx)。
当客户端在同一段时,它运行顺利。
客户端可以 ping、telnet 和远程桌面服务器。它还可以从服务器登录其他应用程序,但无法登录我的 Silverlight 应用程序。
有人知道如何使用不同的 IP 段运行 Silverlight 应用程序吗?
我有一个 Silverlight 应用程序,当它安装在与服务器不同的 IP 段中时无法登录。(客户端在 192.168.77.xx,服务器在 192.168.40.xx)。
当客户端在同一段时,它运行顺利。
客户端可以 ping、telnet 和远程桌面服务器。它还可以从服务器登录其他应用程序,但无法登录我的 Silverlight 应用程序。
有人知道如何使用不同的 IP 段运行 Silverlight 应用程序吗?
为了防止跨站点请求伪造,Silverlight 4(及更高版本)默认情况下只允许对除图像和媒体之外的所有请求进行源站点通信。要使 Silverlight 控件能够访问另一个域中的服务,该服务必须明确选择加入以允许跨域访问。
因此,您应该将Silverlight 应用程序托管在网站的根目录ClientAccessPolicy.xml
或根目录。CrossDomain.xml
这是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>
在此处阅读有关跨域边界提供服务的信息。