我是否需要跨域策略?

时间:2012-06-14 14:36:46

标签: c# flex security permissions cross-domain-policy

我正在使用一个flex(3.5)应用程序,其中swf嵌入在一个与C#asp.net网站通信的php页面中,当我在调试模式下通过Visual Studio的2008和php网页运行我的项目时我自己的机器一切正常。然后我将所有内容都移到了Web服务器上,现在它只是间歇性地在闪存日志中产生以下错误,当它不起作用时:

“错误:由于缺少策略文件权限,请求者/ php-webpage / swf-file对/ c#网站的资源请求被拒绝。”

我已经完成了很多关于策略文件的阅读并且了解了它们的目的但是我不明白的是,如果我的php网页和C#项目托管在同一台服务器上,那么我不需要策略文件,因为我没有跨域通信 - 我使用相同的服务器?

我在这里遗漏了什么或者只是误解了政策文件?如果没有必要,为什么flash日志会抱怨策略文件权限?

1 个答案:

答案 0 :(得分:0)

@ user1456312,我对C#服务器一无所知,但也许我可以给你一些解决它的想法。

在调试模式下,没有安全限制,因此没有问题。

在浏览器中输入网址时,是否可以直接获取crossdomain.xml文件?

您在哪里放置跨域文件以及您的网址是什么来访问您的程序?

您可以尝试使用以下跨域进行测试:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM “/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all"/> 
<allow-access-from domain="*" to-ports="*" secure="false"/> 
<allow-http-request-headers-from domain="*" headers="*" secure="false"/> 
</cross-domain-policy> 

此文件不适用于生产,因为它意味着没有任何限制

如有必要,您可以使用Security.loadPolicyFile(url)从服务器上的备用位置加载crossdomain.xml文件。

相关问题