Comment autoriser plusieurs téléchargements de fichiers sur un intranet interne avec authentification Windows ?

StackOverflow https://stackoverflow.com/questions/50315

Question

J'ai plusieurs solutions, mais aucune ne fonctionne parfaitement.

Plate-forme

  1. ASP.NET/VB.NET/.NET 2.0
  2. IIS6
  3. IE6 (principalement), avec un peu d'IE7 ;Firefox pas nécessaire, mais utile

Options tierces autorisées

  1. Éclair
  2. ActiveX (j'aimerais éviter)
  3. Java (j'aimerais éviter)

Tentatives actuelles

Style Gmail:Vous pouvez utiliser javascript pour ajouter de nouveaux éléments de téléchargement (input type='file'), puis les télécharger tous en même temps en cliquant sur un bouton.Cela fonctionne, mais nécessite quand même beaucoup de clics.(J'ai pu utiliser un contrôle ActiveX invisible pour détecter des éléments tels que la taille du fichier, ce qui serait utile.)

Téléchargeur Flash:J'ai découvert quelques contrôles Flash Upload qui utilisent un fichier flash 1x1 pour agir en tant que téléchargeur, appelable par javascript.(Un de ces contrôles est FantaisieTélécharger, un autre est Téléchargeur de fichiers multiples du Dojo, encore un autre est un par darick_c chez CodeProject.) Cela m'a excité, mais j'ai rapidement rencontré deux problèmes :

  1. Flash 10 supprimera la fonctionnalité utilisée pour appeler la boîte de dialogue de téléchargement de fichiers multiples.La solution de contournement consiste à utiliser un cadre flash transparent ou simplement à utiliser un bouton flash pour appeler la boîte de dialogue.Ce n'est pas grave.
  2. L'authentification Windows intégrée utilisée sur notre intranet n'est pas utilisée lorsque le fichier Flash tente de télécharger les fichiers, invitant l'utilisateur à fournir ses informations d'identification.La solution de contournement consiste à utiliser des sessions sans cookies, ce qui serait un cauchemar pour notre projet pour plusieurs autres raisons.

Téléchargeur Java:J'ai remarqué plusieurs téléchargeurs de fichiers multiples basés sur Java, mais la plupart semblent coûter de l'argent.Si j’en trouvais un qui fonctionnait vraiment bien, je pourrais l’acheter.Je préférerais simplement ne pas le faire.Je n'aime pas non plus le look de la plupart d'entre eux.J'ai aimé FancyUpload car il interagissait avec html/javascript afin que je puisse facilement le styliser et le gérer comme je le souhaite.

Téléchargeur ActiveX:j'ai trouvé une solution ActiveX aussi.Il semble qu'ActiveX fonctionnera.J'écrirais simplement le mien au lieu d'acheter celui-là.Ce sera mon dernier recours, je pense.

Résolution

J'adorerais pouvoir utiliser quelque chose comme FancyUpload.Si je pouvais simplement accéder à l'invite d'identification d'une manière ou d'une autre, ce serait parfait.Mais, d'après mes recherches, il semble que la seule véritable solution de contournement réside dans les sessions sans cookies, ce que je ne peux tout simplement pas faire.

Donc la question est :Existe-t-il un moyen de résoudre les problèmes présentés ci-dessus OU existe-t-il une solution différente que je n'ai pas répertoriée et qui atteint le même objectif ?

Était-ce utile?

La solution 5

@davidinbcn.myopenid.co:C'est essentiellement ainsi que j'ai résolu ce problème.Mais, dans le but de fournir une réponse plus détaillée, je publie ma solution ici.

La solution!

Créez deux applications Web, ou sites Web, ou autre.

Demande A est une simple application Web.Le but de cette application est de recevoir des téléchargements de fichiers et de les enregistrer au bon endroit.Configurez-le comme un accès anonyme autorisé.Créez ensuite une seule page ASPX qui accepte les fichiers publiés et les enregistre dans un emplacement donné.(Je fais ça sur un intranet.En procédant ainsi, les sites Internet peuvent s'exposer à des problèmes de sécurité.Prenez des précautions supplémentaires si tel est le cas.) Le code derrière cette page ressemblerait à ceci :

Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
    UploadFiles(uploads)
Else
    result = "error"
    err = "File Not Uploaded"
End If

Demande B est votre site principal qui permettra le téléchargement de fichiers.Configurez-le en tant qu'application Web authentifiée qui n'autorise pas l'accès anonyme.Ensuite, placez le FantaisieTélécharger (ou solution similaire) sur une page de ce site.Configurez-le pour publier ses fichiers sur la page ASPX de téléchargement de l'application A.

Autres conseils

Je ne pense pas qu'il existe une solution pour l'authentification Windows intégrée.Ce que vous pourriez faire est de sauvegarder les fichiers dans un dossier générique non protégé et, dans le cas de swfupload, d'utiliser un gestionnaire pour déplacer le fichier une fois qu'il est entièrement téléchargé.

Tu pourrais essayer SWFTélécharger également - cela rentrerait dans votre "catégorie" Flash Uploader.

Notre société utilise ajaxuploader.com qui prend en charge cette fonctionnalité.

Dans Internet Explorer, FileReference.upload (téléchargement flash) volonté envoyez également des cookies.

Ce comportement n'est interrompu que lors de l'exécution dans d'autres navigateurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top