是有可能使一个Flex应用程序只能从我的站点中运行? 因此,用户不能复制的.swf文件和本地启动它。
Answer 1:
在很多情况下,这不会因为与crossdomain.xml的相关的安全模型的工作。
http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html
比方说,我有一个有服务电话和登录到我的后端数据库(也许是PHP和MySQL)Flex应用程序。 除非我明确地启用它的crossdomain.xml策略文件,应用程序将无法与我的服务器进行通信,除非该SWF文件是直接从我的域加载。 如果应用程序是地方看起来会到我的服务器就像本地主机试图通过Flex应用程序来访问我的后端。 因此,在默认情况下这是行不通的,除非明确的规则是到位的的crossdomain.xml允许从本地主机访问。 同样一个人不能简单地把SWF在不同的服务器上,并尝试从我的服务器,除非我是远程服务器添加到crossdomain.xml的政策。
所以,回到你的问题。 显然,这crossdomain.xml的东西并没有真正如果你的Flex应用程序是非常简单的,不会尝试对服务器服务电话申请。 例如,如果您有简单的游戏,只是加载和播放而无需柔性游戏内其他服务器调用。
如果你想保护您的应用程序,你可以有,使一个非常简单的服务器调用到您的网站在启动过程中一个基本的“手机之家”的过程。 它不必是任何超级复杂,只需要在启动时您的应用程序的往返服务电话。 也许,检查一个简单的键或字符串存储在PHP端的变量,并且不要让Flex应用程序运行,除非该密钥是有效的。 你可以硬编码动作里面的主要预期。 或者,也许有一个跟踪应用程序多少次发射,将计在数据库或一些基本的记录。 最主要的是不要让应用程序完全启动,直到这个请求到服务器返回一个有效的结果。
如果你有这样的到位,则crossdomain.xml的政策将踢,如果有人下载您的SWF它不应该工作,因为它会尝试从本地主机到服务器进行呼叫。 或者,如果他们窃取您的应用程序并将其托管在其网站上就应该不能工作。
Answer 2:
最简单的办法IL可能要检查的价值
Application.application.loaderInfo.url
在应用程序启动时(例如在applicationComplete事件),并与您的网站域名相匹配。
Answer 3:
请检查flash.System.Capabilities.playerType LiveDocs上也是如此。