我在.NET WinForms应用程序中嵌入了Flash Player ActiveX控件,并尝试通过HTTPS URL将SWF加载到FP控件中。在开发中,我使用自签名证书,似乎在这种情况下,我无法让FP接受证书并允许HTTPS通信。
当我尝试直接在https上加载swf时,我看不到swf,当我右键单击控件时,我看到“Movie not loaded”。
我可以通过http加载swf,然后尝试通过https进行Flash Remoting调用。我不希望这在默认情况下工作,但我添加了一个crossdomain.xml文件以允许不安全的通信。 crossdomain.xml文件位于服务器的根目录中,但未加载。我使用完整的https url添加了对loadPolicyFile
的显式调用,但仍未加载crossdomain.xml文件。本地IIS日志根本不显示任何文件请求,HTTPERR文件中没有任何内容,Flash的policyfiles.txt日志说明
加载政策文件
如果我在浏览器中托管swf,那么浏览器会提示接受证书,一切正常。我已经在IE和Firefox中接受了证书。
我也试过在FP ActiveX控件上调用DisableLocalSecurity()
但它没有效果。我并没有真正期待它,因为我实际上并没有在本地加载swf,而是从网址加载。
任何人都可以确认自签名证书是否确实存在问题?有没有办法让FP接受证书?任何方式绕过http / https限制(这是一个本地安装的应用程序,所以我可以更改我们需要的任何本地配置文件)?
答案 0 :(得分:1)
原来,Flash Player本身不支持独立或嵌入桌面应用程序中的HTTPS。它确实在浏览器中支持HTTPS,但之后它使用浏览器进行https调用。
桌面应用中嵌入的Flash Player中的HTTPS支持是Flash Player 11中的一项新功能。
http://kb2.adobe.com/cps/916/cpsid_91694.html
Flash Player 11中的新功能
TLS安全套接字支持(Flash Player新增功能) - 为客户端/服务器应用程序启用安全通信。