FTP-Autorisierungsregeln werden nicht mit der Benutzerisolationseinstellung auf FTP-Websites in IIS geerbt.

Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem FTP-Autorisierungsregeln nicht mit der Einstellung für die Benutzerisolation geerbt werden, wenn die FTP-Benutzerisolation auf Standortebene konfiguriert ist.

Ursprüngliche Produktversion:   Internetinformationsdienste 7.5
Ursprüngliche KB-Nummer:   4294477

Problembeschreibung

Wenn in Microsoft-Internetinformationsdienste (IIS) die FTP-Benutzerisolation auf Standortebene zum physischen Verzeichnis des Benutzernamens konfiguriert ist (globale virtuelle Verzeichnisse aktivieren), entsprechen ftp-Autorisierungsregeln nicht dem physischen Pfad der Anwendung und werden nicht gemäß der Ordnerstruktur geerbt.

Gehen Sie davon aus, dass für eine IIS-FTP-Website die Benutzerisolation auf das physische Verzeichnis des Benutzernamens festgelegt ist (globale virtuelle Verzeichnisse aktivieren), und in der FTP-Autorisierungsfunktion werden allen Benutzern Leseberechtigungen gewährt. Ein Ordner mit dem Namen Hochladen wird unter \FTP\Localuser\<user_name>\ erstellt, und lese- und schreibzugriff wird allen Benutzern über die FTP-Autorisierungsfunktion in IIS für diesen Hochladen Ordner gewährt. Wenn ein Benutzer, dessen Benutzername dem <user_name> Ordner im Pfad entspricht, versucht, eine Datei in den Ordner Hochladen Hochladen hochzuladen, erhält der Benutzer trotz der Schreibberechtigungen für den Hochladen Ordner eine Fehlermeldung, dass der Zugriff verweigert wurde.

Die Ausgabe für den Versuch, eine FTP-Datei über das in Windows enthaltene Befehlszeilen-FTP-Hilfsprogramm hochzuladen, sieht folgendermaßen aus:

ftp> cd upload  
250 CWD command successful.  
ftp> put c:\file_name.txt  
200 EPRT command successful.  
550-Access is denied.  
Win32 error: Access is denied.  
Error details: Authorization rules denied the access.  
550 End

Ursache

Es handelt sich hierbei um ein beabsichtigtes Verhalten. Die Einstellung für die FTP-Benutzerisolation des physischen Verzeichnisses des Benutzernamens (globale virtuelle Verzeichnisse aktivieren) stellt die Abwärtskompatibilität mit älteren IIS 6-Funktionen sicher.

Lösung

Um das gewünschte Verhalten zu erhalten, verwenden Sie einen anderen Ordner außerhalb der isolierten Ordner des Benutzers, und legen Sie dann die erforderlichen FTP-Autorisierungsregeln für diesen Ordner fest. Verwenden Sie für FTP-Websites, die die physische Verzeichnisisolation des Benutzernamens (globale virtuelle Verzeichnisse aktivieren) verwenden, den FTP/Upload Pfad, anstatt FTP/LocalUser/<user_name>/Upload die FTP-Autorisierungsregeln festzulegen. Der Verzeichnisparser ignoriert den Teil des FTP/LocalUser/<user_name>/Upload Pfads, weil er für die Isolationssuche verwendet wird. Daher funktioniert das Verhalten nur wie erwartet, wenn Autorisierungsregeln für Pfade außerhalb der vom Benutzer isolierten Ordner definiert werden, z. B. der FTP/Upload Beispielpfad. Auf diese Weise gilt die Autorisierung für den Hochladen-Ordner für alle Benutzer.

Es folgt eine Beispielautorisierungsregel in der ApplicationHost.configDatei:

<location path="FTP/Upload">
    <system.ftpServer>
        <security>
            <authorization>
                <remove users="*" roles="" permissions="Read" />
                <add accessType="Allow" users="*" permissions="Read, Write" />
            </authorization>
        </security>
    </system.ftpServer>
</location>

Wenn Sie versuchen, ein Dokument auf die FTP-Website mit dieser Konfiguration hochzuladen, sieht die Ausgabe des FTP-Eingabeaufforderungsprogramms in Windows wie folgt aus:

ftp> cd upload  
250 CWD command successful.  
ftp> put c:\file_name.txt  
200 EPRT command successful.  
125 Data connection already open; Transfer starting.  
226 Transfer complete.  
ftp: 14 bytes sent in 0.00Seconds 14000.00Kbytes/sec.

Die Einstellung für das physische Verzeichnis des Benutzerisolationsbenutzernamens (globale virtuelle Verzeichnisse aktivieren) wird von IIS 6 geerbt und entspricht nicht der richtigen Ordnerstruktur. Ein weiterer Isolationsmodus, das Benutzernamenverzeichnis (deaktivieren globaler virtueller Verzeichnisse), ist in IIS 7 und höher vorhanden, und diese Konfiguration folgt den Autorisierungsregeln.