2009-07-10 10 views
1

Quelqu'un at-il un exemple d'appel d'un service Web à partir d'ActionScript 3.0 avec l'authentification NTLM en place. L'adobe livedocs liste l'authentification NTLM comme étant prise en charge, mais je ne peux pas déterminer où passer les informations d'identification de l'utilisateur.Flash ActionScript Exemple d'authentification NTLM?

Merci, Peter

Répondre

1

Je suis assez sûr que ce ne soit pas directement possible que lorsque vous utilisez Adobe AIR. Les informations d'authentification dans les LiveDocs ne sont applicables qu'à AIR (le petit symbole à côté du nom de la méthode signifie ceci). D'après une lecture rapide à propos de NTLM over HTTP, il semblerait que vous deviez effectuer plusieurs requêtes en fonction des codes d'état HTTP que vous obtenez du serveur. Cela en soi pourrait être problématique car Flash est flakey au mieux avec la fourniture de ces codes. En outre, NTLM est un schéma basé sur la connexion et nécessite que vous gardiez la connexion active entre la deuxième et la troisième demande. Flash ne peut pas envoyer l'en-tête keep-alive et ne peut pas créer de connexions persistantes. J'ai tendance à penser que cela élimine la possibilité d'avoir une authentification Flash NTLM nativement avec AS3.

Cependant, je suis PAS un expert sur NTLM et le document que j'ai cité ne semble pas être une version officielle de la spécification NTLM sur HTTP. Je ne vais pas aller jusqu'à dire qu'authentifier NTLM via Flash est impossible - il semble que peu importe ce que ce sera très, très dur.

0

C'est possible dans ActionScript. Chaque requête que vous effectuez sera contestée par le serveur en demandant au navigateur les informations d'identification NTLM. Internet Explorer ajoute ensuite l'en-tête d'autorisation approprié. Ensuite, le serveur va vérifier les informations d'identification et soit servir le contenu ou refuser l'accès.

Étant donné que tout ceci est fait sans que le sandbox de Flash Player en soit conscient, c'est quelque chose que nous (les développeurs dans le sandbox) ne contrôlons pas. Nous ne pouvons donc pas utiliser ActionScript pour pré-ajouter l'en-tête d'autorisation NTLM avant de faire la demande initiale, ce qui contournerait la phase de "challenge". C'est également vrai dans Silverlight.

Questions connexes