Unterschiedliches Verhalten bei ASP-Skripten
Tom2
- browser
0 Stefan Falz0 Tom2
Hallo Leute
Ich habe soeben ein sehr seltsames Phänomen entdeckt, welches ich mir nicht erklären kann. Es geht um folgendes: Ich arbeite an einem ASP-Skript (VBSkript), welches die Existenz mehrerer Dateien prüft und diese an den Client sendet. In meinem IE, Version 6.0, funktioniert dies tadellos. Rufe ich dasselbe Skript jedoch in meinem Royal Oak (Firefox 0.8) auf, dann findet das Skript keine einzige Datei mehr. Woran könnte das liegen?
Ich konnte das Problem noch etwas einschränken. Die Daten, die das Skript verwendet, liegen auf einem Share (freigegebenen Ordner), der an den Server angebunden ist. Versuche ich dasselbe mit Daten auf den lokalen Laufwerken des Server, dann funktioniert es mit beiden Browsern. Weder Leerzeichen im Pfad noch lange Pfade sind das Problem.
Nun noch ein paar Worte zum Code. Die Verzweigung zwischen dem Weg, der der IE wählt und demjenigen des Firefox' findet jeweils dann statt, wenn ich die FileExists-Methode des Scripting.FileSystemObjects aufrufe. Beim IE kommt ein 'True', während Firefox auf 'False' beharrt. Aber eigentlich sollte das doch gar nichts mit dem Client zu tun haben, oder irre ich mich? Wenn ich die Überpüfung der Existenz auslasse laufe ich beim darauf folgenden Lese-Versuch in einen 'File not found'-Fehler.
Inzwischen ist es nicht mehr nur ein Skript, welches dieses Verhalten an den Tag legt, sondern deren drei.
Ich freue mich über jeden Beistand
Tom2
Hallo,
Nun noch ein paar Worte zum Code. Die Verzweigung zwischen dem Weg, der der IE wählt und demjenigen des Firefox' findet jeweils dann statt, wenn ich die FileExists-Methode des Scripting.FileSystemObjects aufrufe. Beim IE kommt ein 'True', während Firefox auf 'False' beharrt. Aber eigentlich sollte das doch gar nichts mit dem Client zu tun haben, oder irre ich mich? Wenn ich die Überpüfung der Existenz auslasse laufe ich beim darauf folgenden Lese-Versuch in einen 'File not found'-Fehler.
Das dürfte IMO daran liegen, dass IE sich mittels NTLM direkt an
den Webserver anmeldet. Dein Skript läuft dann nicht mehr unter
IUSR, sondern unter deinem Benutzeraccount. Und _der_ wiederum hat
Rechte, auf das Netzlaufwerk zuzugreifen.
Firefox kennt NTLM ja gar nicht. Da BASIC Authentifizierung wohl
nicht aktiviert ist, kann der sich auch nicht anmelden (mit welchen
Daten auch :). D.h. dein Skript läuft unter IUSR_machinename. Und
somit hat das Skript (eigentlich der gesamte IIS) keine Rechte, ins
Netzwerk zu gehen. Das zu ändern ist auch nicht wirklich einfach
(außer es nicht mit dem anonymen Benutzer laufen zu lassen).
Schalt mal im IE in allen Sicherheitszonen die "Autom. Anmeldung"
(Intranet, ...) aus. Dann sollte der IE Zugriff auch fehlschlagen.
Tschau, Stefan
Hallo Stefan
Das dürfte IMO daran liegen, dass IE sich mittels NTLM direkt an
den Webserver anmeldet. Dein Skript läuft dann nicht mehr unter
IUSR, sondern unter deinem Benutzeraccount. Und _der_ wiederum hat
Rechte, auf das Netzlaufwerk zuzugreifen.
Klingt logisch - die Benutzer-Authentifizierung läuft über den Widnows-Benutzernamen. Wenn ich mit dem Firefox auf die Seiten zugreifen will, muss ich mich aber mit den Windows-Daten anmelden. Ich werde mich mal mit diesem NTLM beschäftigen und der Sache nachgehen.
Vielen Dank für deine Hilfe
Tom2