Basics of the Security Policy System
使用套接字类的另一个限制是
允许网络应用程序访问的目标端口范围
连接到必须在 4502-4534 的范围内。这些是唯一的
Silverlight 连接允许的目标端口
使用套接字的应用程序。如果目标端口不在此端口内
范围内,连接尝试将失败。目标是可能的
服务器接收来自此受限范围的端口上的连接,并且
将其重定向到不同的端口(例如,众所周知的端口),如果
这是支持特定的现有应用程序协议所必需的。
我认为缩小端口范围会限制可用的 tcp 套接字。他们显示Example Policy File for Sockets here
<?xml version="1.0" encoding ="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="file:///" />
</allow-from>
<grant-to>
<socket-resource port="4502-4506" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
引用 MS 的以下文档
To use a clientaccesspolicy.xml file to allow cross-domain access
要启用服务以通过 TCP 套接字进行访问,请添加
<socket-resource port="4502" protocol="tcp" /> 到 <grant-to>
元素,其中4502 是托管服务的端口值。
域示例
此策略文件仅接受来自指定域和方案的连接。此策略文件指定特定的请求标头并指定可以访问的资源。
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="MyHeader, X-API-*">
<domain uri="http://electronics.fabrikam.com"/>
<domain uri="http://books.fabrikam.com"/>
<domain uri="http://contoso.com:8080"/>
</allow-from>
<grant-to>
<socket-resource port="4502-4506" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
对于上述策略,允许下面列出的 Silverlight HTTP 应用程序访问列出的端口:
http://electronics.fabrikam.com/sample/app.xap
http://books.fabrikam.com/web/sample/app.html
http://contoso.com:8080/sample/app.xap
对于上述政策,不允许下面列出的 Silverlight 应用程序访问列出的端口:
http://electronics.fabrikam.com:8080/sample/app.xap
http://electronics.fabrikam.com:8080/sample/app.xap
http://bar.com/sample/app.xaml
https://bar.com/sample/app.html
可以发送以下 HTTP 请求标头(除了始终允许的 Content-Type 标头):
MyHeader
all headers starting with X-API-
资源Network Security Access Restrictions in Silverlight