1

有没有人有一个使用 NTLM 身份验证从 actionscript 3.0 调用 Web 服务的示例。adobe livedocs 将 NTLM 身份验证列为支持,但我不知道在哪里传递用户凭据。

谢谢,彼得

4

2 回答 2

1

我相当肯定这不是直接可能的,除非使用 Adob​​e AIR。LiveDocs 中的身份验证信息仅适用于 AIR(方法名称旁边的小符号表示这一点)。

从一些关于NTLM over HTTP 的快速阅读来看,它似乎需要您根据从服务器返回的 HTTP 状态代码执行多个请求。这本身可能是有问题的,因为 Flash 在提供这些代码方面充其量是脆弱的。

此外,NTLM 是一种基于连接的方案,并且要求您在第二个和第三个请求之间保持连接处于活动状态。Flash 无法发送 keep-alive 标头,也无法创建持久连接。我倾向于认为这消除了让 Flash 使用 AS3 本机进行 NTLM 身份验证的可能性。

但是,我不是NTLM 专家,我引用的文档似乎不是 NTLM over HTTP 规范的正式版本。我不会说通过 Flash 验证 NTLM 是不可能的——看起来无论如何它都会非常非常困难。

于 2009-07-13T03:03:23.680 回答
0

在 ActionScript 中是可能的。服务器将通过向浏览器询问 NTLM 凭据来挑战您发出的每个请求。然后 Internet Explorer 附加适当的授权标头。接下来,服务器将验证凭据并提供内容或拒绝访问。

由于所有这些都是在 Flash Player 沙箱不知道的情况下完成的,因此我们(作为沙箱中的开发人员)无法控制它。因此,我们不能在发出初始请求之前使用 ActionScript 预先附加 NTLM 授权标头,这将绕过“挑战”阶段。Silverlight 中也是如此。

于 2012-10-15T17:56:19.150 回答