0

因此,我们在 JBOSS 服务器实例中托管了三个 FLEX 控件,以及一个 IIS (MVC) 应用程序,该应用程序的页面具有对象(和嵌入)标签来呈现控件。我们希望在托管其他服务(Solr、一些自定义 web 服务和 tika)的 jboss 服务器上设置 HTTP 基本身份验证,并且已经弄清楚如何传递凭据。

如何将这些基本的 http 身份验证凭据发送到对象/嵌入标签中的 flex 控件?

4

1 回答 1

1

请充分注意,此选项非常不安全,因为仅查看 HTML 源代码就会显示用户的凭据。

第一步

如果您想要在开发期间将凭据(demouser/demouser)传递给在 object/embed 标记内声明的 Flash 控件,您可以修改 noscript 部分以及在html-template/index中使用 JavaScript 传递 Flash 变量的其他几个地方您的 Flex 构建器项目中的.template.html文件 -

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
            id="${application}" width="${width}" height="${height}"
            codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
            <param name="movie" value="${swf}.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="${bgcolor}" />
            <param name="allowScriptAccess" value="sameDomain" />
            <param name="http_user" value="demouser" />
                    <param name="http_password" value="demouser" />
            <embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
                width="${width}" height="${height}" name="${application}" align="middle"
                play="true"
                loop="false"
                quality="high"
                allowScriptAccess="sameDomain"
                type="application/x-shockwave-flash"
                flashVars="http_user=demouser&http_password=demouser"
                pluginspage="http://www.adobe.com/go/getflashplayer">
            </embed>
    </object>

部署时,您需要包装生成的 HTML 包装文件(通常在 JSP 页面的bin-debug/文件夹中,并使用 scriptlet 或 JSTL 标记逐个用户写出凭据)。例如,

flashVars="http_user=demouser&http_password=demouser"

会成为

flashVars="http_user=<%=username%>&http_password=<%=password%>"

第二步

在您的 Flex 代码中,通过以下方式检索用户名和密码:

import mx.core.Application;

var username:String = Application.application.parameters["http_user"];
var password:String = Application.application.parameters["http_password"];
于 2010-03-30T01:06:31.503 回答