Chinaunix

标题: Security Sandbox of the Webplayer in U3D [打印本页]

作者: matthew_1983    时间: 2011-12-22 08:51
标题: Security Sandbox of the Webplayer in U3D
参考文章:http://unity3d.com/support/documentation/Manual/Security%20Sandbox.html
unity3.0版本后的webplayer加入了security sandbox特性,使用socket连接之前,会向默认端口843发送策略文件请求信息:<policy-file-request/>,如果返回信息不正确或者端口不在允许范围内,socket连接失败并且报以下异常:
  1. System.Security.SecurityException: Unable to connect, as no valid crossdomain policy was found
解决以上问题需要进行两步处理:
第一步:
在客户端socket连接之前调用以下API函数 Security.PrefetchSocketPolicy(server,port)
第二步:
开启服务器之前运行sockpol.exe,位置为unity安装目录Unity\Editor\Data\Tools\SocketPolicyServer,作用是向客户端返回策略文件信息,运行时有三个命令:--all表示接受所有port范围,--range表示接收范围是4500-4550,可以在源代码中进行修改,--file表示读取本地文件,后面跟文件路径,可以自定义port范围,自定义文件格式如下:
  1. <?xml version="1.0"?>
  2. <cross-domain-policy>
  3.     <allow-access-from domain="*" to-ports="8000" />
  4. </cross-domain-policy>
经局域网测试,连接正常。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2