2010-11-22 3 views
5

Verwenden Sie das Plugin "Uploadify", das jQuery und SWF verwendet. Bei einigen Webservern funktioniert es, bei anderen nicht. Scheint beim Hochladen ein HTTP 401 Not Authorized zu erhalten. Könnte mit SWF verwandt sein. In Fiddler, wenn es nicht funktioniert, scheinen diese Proxy-Unterstützung: Session-Based-Authentifizierung, aber wenn es funktioniert, erhalten wir nicht die Session-basierte Authentifizierung. Ist dies ein Problem mit dem Netzwerk-Routing? Proxy-Problem? Irgendwelche Vorschläge auf fixUploadify und HTTP 401 Herausforderungen. Warum funktioniert es nicht konsequent?

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

Es ist scheinbar wie die beste Lösung ist, nicht zu verwenden, wie eine Schnittstelle wie es ist. Wenn jedoch kein Flash vorhanden ist, verlieren wir die Möglichkeit, mehrere Dateien gleichzeitig hochzuladen. Alle anderen nicht-SWF-jQuery-Plugins, die jeder empfehlen kann? – Shane

Antwort

6

Für alle, die das Plug-in "Uploadify" mit Windows-Authentifizierung verwenden möchten. Tu es nicht. Nicht nur Uploadify, sondern auch alle, die Flash-Dateien verwenden. Probieren Sie stattdessen ein anderes Plug-in aus. Wir haben dieses Hotel genutzt und es hat einfach super funktioniert, keine Probleme. Es verwendet keinen Flash.

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

3

Uploadify verwendet Flash für das Hochladen. Ich denke, das Problem hängt mit einem Fehler in Flash zusammen, der dazu führt, dass Uploadify eine separate Sitzung verwendet. Obwohl die Sitzung des Benutzers zum Hochladen berechtigt ist, wird diese Berechtigung nicht auf die Sitzung "Uploadify" erweitert.

Eine Lösung für dieses Problem besteht darin, Ihre eigene benutzerdefinierte Authentifizierung für das Hochladen zu machen. Sie könnten in Betracht ziehen, dem Benutzer eine Art Zugriffstoken zu senden, das als Parameter an Uploadify übergeben und beim Hochladen von Dateien weitergegeben werden kann.

+1

Ich stimme mit Absatz 1 überein, aber ich stimme mit Absatz 2 absolut nicht zu :) Normalerweise reicht es aus, die richtige Sitzungs-ID manuell in den Optionen des Uploaders zu übergeben. (Wird upvote, wenn ich wieder Stimmen habe) –

+0

So, wie ich es verstehe, ist das Problem ein Fehler in SWF-Dateien, dass sie nicht immer die Authentifizierung Header richtig tragen, so könnten Sie eine ASPX-Seite erstellen, die den Inhaltstyp von Shockwave zurückgibt flash und mache ein Response.BinaryWrite, um die Datei zu erhalten. Vielleicht würde es das umgehen. Nicht sicher. – Shane

+0

@Pekka: Das klingt nach einer guten Lösung. Mein erster Versuch, als ich auf dieses Problem stieß, bestand darin, die Sitzungs-ID weiterzugeben und die eigentliche Uploadify-Sitzung auszuwechseln, bevor die Anfrage verarbeitet wurde. Es hat jedoch ein paar andere Probleme aufgeworfen, sodass ich die Sitzungs-ID des Benutzers als "Token" in der Datenbank gespeichert und zusammen mit der Uploadify-Anfrage übergeben habe. –

1

ich in dieser Ausgabe vor kurzem lief.

In meinem Fall habe ich IIS mit Windows-Authentifizierung aktiviert (kein anonymer Zugriff). Dadurch wurde verhindert, dass Flash Dateien hochladen konnte, da der Uploadvorgang als nicht authentifizierte separate Sitzung ausgeführt wurde. Zur Lösung erlaubte ich anonymen Zugriff nur auf die Handler-Dateien und das Hochladen funktioniert jetzt super.

+0

Können Sie bitte erarbeiten und mir die Schritte geben? Ich habe das gleiche Problem. –