Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, FTP kullanıcı yalıtımı site düzeyinde yapılandırılmışsa, kullanıcı yalıtımı ayarıyla FTP yetkilendirme kurallarının devralınmama sorununu çözmenize yardımcı olur.
Orijinal ürün sürümü: Internet Information Services 7.5
Özgün KB numarası: 4294477
Belirtiler
Microsoft Internet Information Services'te (IIS), FTP kullanıcı yalıtımı site düzeyinde Kullanıcı adı fiziksel dizinine (genel sanal dizinleri etkinleştir) yapılandırıldıysa, FTP yetkilendirme kuralları uygulamanın fiziksel yoluna uymaz ve klasör yapısına göre devralınır.
IIS FTP sitesinde kullanıcı yalıtımının Kullanıcı adı fiziksel dizini (genel sanal dizinleri etkinleştir) olarak ayarlandığını ve FTP yetkilendirme özelliğinde tüm kullanıcılara okuma izinlerinin verildiğini varsayalım. altında \FTP\Localuser\<user_name>\
Karşıya Yükle adlı bir klasör oluşturulur ve bu Karşıya Yükleme klasörü için IIS'deki FTP yetkilendirme özelliği aracılığıyla tüm kullanıcılara okuma ve yazma erişimi verilir. Karşıya Yükle klasörüne yazma izinlerine sahip olmasına rağmen, kullanıcı adı yoldaki <user_name> klasörüyle eşleşen bir kullanıcı Karşıya Yükle klasörüne bir dosya yüklemeye çalıştığında, kullanıcı Erişim reddedildi hata iletisi alır.
Windows'a dahil olan komut satırı FTP yardımcı programı aracılığıyla BIR FTP dosyasını karşıya yüklemeye çalışma çıkışı aşağıdakine benzer:
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
Neden
Bu davranış tasarımdan kaynaklanır. FTP kullanıcı yalıtımı Kullanıcı adı fiziksel dizini (genel sanal dizinleri etkinleştir) ayarı, eski IIS 6 işlevleriyle geriye dönük uyumluluk sağlar.
Çözüm
İstenen davranışı elde etmek için, kullanıcı tarafından yalıtılmış klasörlerin dışında başka bir klasör kullanın ve ardından bu klasörde gerekli FTP yetkilendirme kurallarını ayarlayın. Kullanıcı adı fiziksel dizini (genel sanal dizinleri etkinleştir) yalıtımı kullanan FTP siteleri için, FTP yetkilendirme kurallarını ayarlamak yerine FTP/LocalUser/<user_name>/Upload
yolunu kullanınFTP/Upload
. Dizin ayrıştırıcısı, yalıtım araması için FTP/LocalUser/<user_name>/Upload
kullanıldığından yolunun bölümünü yoksayar. Bu nedenle, davranış yalnızca yetkilendirme kuralları örnek yol gibi kullanıcı yalıtılmış klasörleri dışındaki yollarda tanımlandığında beklendiği gibi FTP/Upload
çalışır. Bu şekilde, yetkilendirme tüm kullanıcılar için Karşıya Yükle klasörü için geçerlidir.
Aşağıda ApplicationHost.config dosyasındaki örnek bir yetkilendirme kuralı verilmiştir:
<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>
Bu yapılandırmaya sahip FTP sitesine bir belge yüklemeye çalıştığınızda, Windows'daki FTP komut istemi yardımcı programının çıkışı aşağıdakine benzer:
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.
Kullanıcı Yalıtımı Kullanıcı adı fiziksel dizini (genel sanal dizinleri etkinleştir) ayarı IIS 6'dan devralınır ve doğru klasör yapısını izlemez. Başka bir yalıtım modu olan Kullanıcı adı dizini (genel sanal dizinleri devre dışı bırak)IIS 7 ve sonraki sürümlerde bulunur ve bu yapılandırma yetkilendirme kurallarına uyar.