1

在我的 Flex 应用程序中,我需要对 j_security_check 表单进行身份验证(这似乎是一种流行的身份验证方式),在 HTTP POST 请求中提供j_username和字段作为参数。j_password我打算用一个简单的 HTTPService 来实现(我知道的另一个选项是 URLLoader,但它提供了相同的结果)。发送 POST 请求后,我等待jsessionid包含SetCookie. 但是,我得到了一个 html 页面,它应该只在我收到jsessionid.

以下是 HTTP 数据包的实际样子:

  1. 我的 POST 请求[baseurl]/j_security_check包含j_usernamej_password
  2. jsessionid包含as的 HTTP 状态 302 响应SetCookie
  3. 来自我的应用程序的 GET 请求(我没有发送它!)[baseurl]/login.jsp只包含jsessionid与前一个数据包一起收到的一个。
  4. 一个 HTTP 状态 200 响应,其中包含一个 html 页面,成功登录后应在 Web 浏览器中查看该页面。

我需要jsessionid使用不同的、基于 SOAP 的 Web 服务作为身份验证手段的值。但我似乎无法获得它——Flex HTTPService 默默地捕捉到 302 响应并发送下一个 GET;之后cookie无处可寻。

..然而,cookie 肯定缓存在 Flex 的某个地方,因为它被提供给从任何 HTTPService 实例到该服务器的所有进一步请求!

我想知道它是否可以与网络服务一起使用。因此我的问题是:如何在 Flex 中获取此 cookie 的值?

4

1 回答 1

0

显然,在接收到setCookieHTML 标头后,Flex 会将其提供给任何后续的 HTTP 请求——无论是 anHTTPService还是 SOAP WebService。我还没有找到获取 this 值的方法setCookie,但是这种情况无论如何都适用于我的情况。

更新:这是 Adob​​e Flex JIRA 上已确认的错误:http: //bugs.adobe.com/jira/browse/SDK-15049 分辨率“延迟”

于 2012-06-21T22:56:59.880 回答