2010-11-22 4 views
5

Utilisation du plug-in Uploadify qui utilise jQuery et SWF. Certains serveurs Web fonctionnent, d'autres non. Semble obtenir un HTTP 401 non autorisé lors de la tentative de téléchargement. Peut être lié à SWF. Dans Fiddler, quand cela ne fonctionne pas, il semble que vous obteniez cette Proxy-Support: Session-Based-Authentication, mais quand cela fonctionne, nous n'obtenons pas l'authentification basée sur la session. Est-ce un problème de routage réseau? Problème de proxy? Toutes les suggestions sur fixUploadify et défis HTTP 401. Pourquoi cela ne fonctionne-t-il pas systématiquement?

HTTP/1.1 401 Unauthorized 
Date: Mon, 22 Nov 2010 22:20:45 GMT 
Server: Microsoft-IIS/6.0 
WWW-Authenticate: Negotiate 
WWW-Authenticate: NTLM 
X-Powered-By: ASP.NET 
X-AspNet-Version: 2.0.50727 
Cache-Control: private 
Content-Type: text/html; charset=utf-8 
Content-Length: 1697 

Proxy-Support: Session-Based-Authentication

+0

Il semble que la meilleure solution est de ne pas utiliser Uploadify, aussi agréable qu'une interface telle qu'elle est. Mais si aucun flash, alors nous perdons la possibilité de télécharger plusieurs fichiers à la fois. Tout autre plugin jQuery non-SWF que n'importe qui peut recommander? – Shane

Répondre

6

Pour quiconque souhaitant utiliser le plugin Uploadify avec l'authentification Windows. Ne fais pas ça. Non seulement Uploadify, mais tous ceux qui utilisent des fichiers Flash. Essayez une autre prise à la place. Nous avons utilisé celui-ci et cela a fonctionné très bien, pas de problèmes. Il n'utilise pas de Flash.

http://valums.com/ajax-upload/

3

Uploadify utilise Flash pour le téléchargement. Je pense que le problème ici est lié à un bug dans Flash qui fait que Uploadify utilise une session séparée. Même si la session de l'utilisateur est autorisée à télécharger, cette autorisation n'est pas étendue à la session Uploadify.

Une solution à ce problème est de créer votre propre authentification personnalisée pour le téléchargement. Vous pouvez envisager d'émettre un type de jeton d'accès à l'utilisateur pouvant être transmis en tant que paramètre à Uploadify et transmis lors du téléchargement de fichiers.

+1

Je suis d'accord avec le paragraphe 1, mais je ne suis pas du tout d'accord avec le paragraphe 2 :) Habituellement, transmettre l'ID de session correcte manuellement dans les options de l'uploader est suffisant. (Je reviendrai quand j'aurais voté à nouveau) –

+0

Donc, si je comprends bien, le problème est un bug dans les fichiers SWF qu'ils ne portent pas toujours les en-têtes d'authentification correctement, alors vous pouvez créer une page aspx qui retourne le type de contenu de shockwave flash et faites un Response.BinaryWrite pour obtenir le fichier. Peut-être que ça le contournerait. Pas certain. – Shane

+0

@Pekka: Cela semble être une bonne solution. Ma première tentative, lorsque j'ai rencontré ce problème, consistait à transmettre l'ID de la session et à remplacer la session de téléchargement réelle avant le traitement de la demande. Cela a soulevé quelques autres problèmes, j'ai donc fini par enregistrer l'ID de session de l'utilisateur dans la base de données en tant que «jeton» et le transmettre avec la demande de téléchargement. –

1

je suis tombé sur cette question récemment.

Dans mon cas, j'utilisais IIS avec l'authentification Windows activée (pas d'accès anonyme). Cela a empêché Flash de télécharger des fichiers car il a exécuté le processus de téléchargement en tant que session distincte non authentifiée. Pour résoudre j'ai autorisé l'accès anonyme sur les fichiers de gestionnaire seulement et le téléchargement fonctionne maintenant très bien.

+0

Pouvez-vous élaborer et me donner les étapes? J'ai le même problème. –

Questions connexes