Silverlight网络通信全解析
1. 跨域通信的开启
Silverlight可通过套接字或HTTP进行网络通信,但为防止被用于网络攻击,其网络通信需受控制。默认情况下,可限制Silverlight应用与提供它的服务器(即应用的源站点)之间的通信。
若要进行跨域通信,Silverlight需先判断网络请求是否为跨域请求。满足以下三个条件的请求被视为源站点请求,否则为跨域请求并触发下载跨域策略文件:
- 协议必须相同。若应用通过HTTP提供服务,则只能通过HTTP进行通信;HTTPS同理。
- 端口必须相同,需与应用下载的原始URL中的端口匹配。
- URL中的域名和路径必须完全匹配。
跨域请求时,Silverlight会检查远程服务器的权限。有两个跨域策略文件可供Silverlight使用:
-crossdomain.xml:由Flash引入,用于允许整个域的访问。示例代码如下:
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*"/> </cross-domain-policy>clientaccesspoli