我有一个 Flex 应用程序,它访问需要 SSL 客户端身份验证的 URL。这些请求在 Firefox 和 Chrome 中运行良好。 Chrome 和 Firefox 显示选择用户证书的提示,然后请求成功完成。在 Internet Explorer 中没有提示。请求返回:
Error #2032: Stream Error. URL: https://MyServer/Path/test.txt
我已经解决了这个问题,方法是在我的 index.html 文件中创建一个标记,该标记将安全端点命中一个空白的 JavaScript 文件,提示输入证书。加载空白 JavaScript 文件后,Flex 应用程序中的一切正常。这样做的问题是应用程序将访问多个需要用户证书的端点;一些我不认识的。他们没有我可以从中加载的已知空白端点(由于 JS 异常,我不想将他们尝试加载的 URL 放入脚本标记中)。
关于如何让 Internet Explorer 在对安全端点的初始请求时提示我输入用户证书的任何想法?
最佳答案
我还没有测试过这个,但是你可以试试:
使用 ExternalInterface从您的 Flex 应用程序调用一些 JS。此 JS 将向您希望验证证书的网站发出请求。例如,您可以在隐藏的 iframe 中加载站点的主页。
监听 iframe 的 'load' 事件以在加载 iframe 内容时通知 flex 应用程序 (
iframe.addEventListener('load', someFunction, false);
)。同样,使用 ExternalInterface 通知 Flex 应用。
希望对你有帮助。
关于apache-flex - 需要 SSL 用户证书的 Flex UrlLoader 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340363/