Flash Player,它嵌入的网页域名?

时间:2011-11-19 07:11:39

标签: flash flex web dns ip-address

我开发了一个flex应用程序(Flex 4.5.1)。我希望flex应用程序只能由我允许的域名使用。加载应用程序后,我会检查远程数据库是否有域名有效。

问题是flash player只返回用户机器的域名。我想要的是flex应用程序所属的网站的域名。例如,如果我浏览我的Flash应用程序的网页是www.abc.com/index.html,我需要www.abc.com或abc.com。那可能吗?我尝试过的每种方法都只返回网站访问者计算机的名称。

由于

2 个答案:

答案 0 :(得分:0)

您可以向JavaScript函数添加Flash ExternalInterface调用。 javaScript函数可以返回位置

e.g

//javascript
function getLocation() {
    return window.location;
}

//AS3
var windowLocation:String=ExternalInterface.call(getLocation) as String;

修改

对于那些不想通过Javascript执行此操作的人:您不需要JAVASCRIPT:)

只需从Flash向您的服务器发送请求即可。

然后检查对应于http referrer的服务器端变量(在ColdFusion中,它的CGI.HTTP_REFERRER。在PHP中,它的$_SERVER['HTTP_REFERER'];

这将包含发送请求的swf文件的URL。

答案 1 :(得分:0)

没有100%可靠的方法来获取你的瑞士法郎的当前网址(我之前在MochiMedia论坛上问过这个问题:https://www.mochimedia.com/community/forum/topic/reliably-find-the-page-url#d5fe7e47)。主要问题:

  • 您可以使用stage.loaderInfo.url,但会返回swf的网址,该网址可以托管在其他位置(也许也可以使用)。此外,如果该网站使用自定义预加载器,那么它可能是此预加载器的URL而不是您的swf。
  • 您可以使用ExternalInterface,但首先需要启用Javascript,如果您使用的网站使用iframe嵌入您的swf,它将会中断
  • 你可以使用PHP和推荐标题,但它会遇到与js版本相同的问题。

我使用类似SecureSWF(http://www.kindi.com)的东西,因为他们有网站锁定以及加密等。我无法真正告诉你它是如何工作的,或者它是否与3不同以上方法