我正在为使用TCP连接进行通信的本地托管的Silverlight组件托管clientaccesspolicy.xml。它有效,但我试图收紧允许的域名,我找不到文档来指明如何为TCP连接指定这些限制。
这是可能的吗?如果我应该如何指定这些限制?
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<socket-resource port="4502-4534" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
答案 0 :(得分:0)
Basics of the Security Policy System
使用套接字类的另一个限制是 允许网络应用程序使用的目标端口范围 connect to必须在4502-4534范围内。这是唯一的 Silverlight连接允许的目标端口 应用程序使用套接字。如果目标端口不在此端口内 范围,尝试连接将失败。目标是可能的 服务器从此受限范围接收端口上的连接 将其重定向到另一个端口(例如,一个众所周知的端口)if 这是支持特定现有应用程序协议所必需的。
我认为缩小端口范围会限制可用的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>
element,其中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-