8
votes

Boîte d'authentification du navigateur

Je présente des excuses qu'il y a déjà une question similaire mais j'aimerais le demander plus largement.

Y a-t-il un moyen de déterminer sur le côté client d'une application Web si demander une ressource renvoie un code d'état 401 et provoquera l'affichage du navigateur une boîte de dialogue de l'authentification laid?

ou, y a-t-il un moyen de charger une ressource audio MP3 en Flash qui échoue de manière invisible dans le cas d'un code d'état 401 plutôt que de laisser le navigateur montrer une boîte de dialogue laide?

Le temps d'exécution Adobe Air supprimera l'authentification si je définit la propriété "authentifier" de l'objet URLREQUEST, mais cette propriété n'est pas dans le temps d'exécution Flash. Toute solution qui fonctionne sur le client fera. Un XMLHTTPRequest n'est pas susceptible de fonctionner car les ressources des questions seront à différents domaines.

Il est important d'échouer de manière invisible car l'application aura une liste de nombreuses ressources audio pour essayer de gérer l'utilisateur d'essayer d'authentifier pour une quand il y a beaucoup d'autres disponibles. Il est important que la solution fonctionne sur le client car la MP3 en question provient de divers serveurs en dehors de mon contrôle.


0 commentaires

4 Réponses :


1
votes

J'ai le même problème avec l'API Twitter - tout utilisateur protégé nécessite que le client s'authentifiera.

La seule solution que je pourrais proposer était de charger les pages serverides et de renvoyer une liste des URL avec son code de réponse HTTP.


1 commentaires

Twitter API possède un paramètre Suppress_response_codes , qui forcera la réponse à 200 Etat OK.



0
votes

"Est-il possible de déterminer sur le côté client d'une application Web si demander une ressource retourne un code d'état 401 et provoquera le navigateur d'afficher une boîte de dialogue d'authentification laid?"

Non, pas en général. La réponse 401 est la seule façon standard pour le serveur d'indiquer que l'authentification est nécessaire.


0 commentaires

0
votes

Enveloppez simplement votre accès à la ressource pouvant potentiellement nécessiter une authentification à un appel AJAX. Vous pouvez attraper le code de réponse et utiliser JavaScript pour faire ce que vous voulez (c'est-à-dire. Jouer à ce son). Si le code de réponse est cependant d'accord, utilisez JavaScript pour transférer l'utilisateur à la ressource.

Très probablement Cette approche générera légèrement plus de charge sur le serveur (vous pourriez avoir à recourir à la chargement de la même ressource plusieurs fois dans certaines circonstances), mais cela devrait fonctionner. Tout bon tutoriel sur la manière d'utiliser XMLHTTPQUEST doit contenir tout ce dont vous avez besoin. Jetez un coup d'œil à Par exemple http://www.xul.fr/fr-xml- ajax.html


1 commentaires

Ajax ne fonctionne pas dans différents domaines, de sorte que cela ne fonctionnera que si la page et la ressource sont sur le même domaine.



0
votes

Si vous utilisez Urlrequest pour obtenir les fichiers, vous rencontrez plus d'une manipulation d'erreurs élégante, vous rencontrez une différence fondamentale dans le flash et les temps d'exécution de l'air.

Si vous utilisez l'objet URLREQUEST pour récupérer des fichiers, vous obtiendrez une erreur de sécurité de Flash sur chaque requête sur chaque serveur qui n'a pas défini de fichier de stratégie pour permettre ce type de requêtes. L'air permet à ces demandes car il s'agit fondamentalement du client. Cela a du sens car c'est la différence entre installer une application et visiter une page Web.

Je déteste fournir la non-réponse, mais si vous ne pouvez pas faire appel à un serveur, vous frappez une gamme de serveurs "non connus", ce sera une route difficile à la houe. < / p>

Mais peut-être que j'ai mal compris, essiez-vous simplement de créer des liens vers les fichiers et d'empêcher l'utilisateur d'obtenir de mauvais liens, ou essayez-vous de charger des fichiers?


1 commentaires

Merci pour votre temps, que je puisse avoir ce que je veux. Oui, j'essaie de les charger et de les jouer. Il n'est pas important que toute URL particulière fonctionne cependant, comme j'ai beaucoup à essayer.