ASP.NET uygulamalarını barındırmak için Win2003 üzerindeki IIS6'dan Win2012 üzerindeki IIS8'e yeni geçtim.
Uygulamamdaki belirli bir klasör içinde Dosya Oluşturmam ve Silmem gerekiyor. Dosyaları yeni sunucuya kopyaladıktan sonra, dosyaları silmeye çalıştığımda aşağıdaki hataları görmeye devam ettim:
'D:\WebSites\myapp.co.uk\companydata\filename.pdf' yoluna erişim reddedildi.
IIS'yi kontrol ettiğimde uygulamanın DefaultAppPool hesabı altında çalıştığını görüyorum, ancak bu klasördeki Windows izinlerini IIS AppPool\DefaultAppPool içerecek şekilde ayarlamadım
Bunun yerine, müşterilerin çığlık atmasını engellemek için klasöre aşağıdaki izinleri verdim:
IUSR
IIS_IUSRS
Bu işe yaramış gibi görünüyor, ancak çok fazla ayrıcalık belirlenmiş olmasından endişe ediyorum. Burada IUSR'nin gerçekten gerekli olup olmadığı konusunda internette çelişkili bilgiler okudum. Bu klasörde belge oluşturmak ve silmek için hangi kullanıcıların/izinlerin yeterli olacağını açıklayabilir misiniz lütfen? Ayrıca, IUSR, IIS_IUSRS grubunun bir parçası mı?
Lütfen aşağıdaki cevabıma bakınız. Son zamanlarda yapılan bazı öneriler iyi düşünülmediği ve hatta güvenli olmadığı için (IMO) ne yazık ki bunu yapmak zorunda kaldım.
IUSR, IIS_IUSER grubunun bir parçasıdır.bu yüzden IUSR için izinleri endişelenmeden kaldırabileceğinizi tahmin ediyorum. Daha Fazla Okuma
Ancak, zaman içinde daha fazla Windows sistem hizmeti NETWORKSERVICE olarak çalışmaya başladıkça bir sorun ortaya çıktı. Bunun nedeni NETWORKSERVICE olarak çalışan hizmetlerin aynı kimlik altında çalışan diğer hizmetleri kurcalayabilmesidir. IIS çalışan işlemleri varsayılan olarak üçüncü taraf kodunu (Klasik ASP, ASP.NET, PHP kodu) çalıştırdığından, IIS çalışan işlemlerini diğer Windows sistem hizmetlerinden ayırmanın ve IIS çalışan işlemlerini benzersiz kimlikler altında çalıştırmanın zamanı gelmişti. Windows işletim sistemi, IIS'nin Uygulama Havuzlarının her biri için benzersiz kimlikler oluşturmasına olanak tanıyan "Sanal Hesaplar" adlı bir özellik sağlar. DefaultAppPool, oluşturduğunuz tüm Uygulama Havuzlarına atanan varsayılan havuzdur.
Daha güvenli hale getirmek için IIS DefaultAppPool Identity'yi ApplicationPoolIdentity olarak değiştirebilirsiniz.
İzinlerle ilgili olarak, Oluştur ve Sil, verilebilecek tüm hakları özetler. Yani IIS_USERS grubuna atadığınız her şey onların ihtiyaç duyacağı şeydir. Ne eksik ne fazla.
Umarım bu yardımcı olur.
@EvilDr AD ortamınızda bir IUSR[identifier] hesabı oluşturabilir ve belirli uygulama havuzunun bu IUSR[identifier] hesabı altında çalışmasına izin verebilirsiniz:
"Uygulama havuzu" > "Gelişmiş Ayarlar" > "Kimlik" > "Özel hesap"
Gelişmiş Ayarlar'da web sitenizi "Belirli kullanıcı" olarak değil "Uygulama kullanıcısı (geçişli kimlik doğrulama)" olarak ayarlayın.
Şimdi bu IUSR_[identifier]'a dosya ve klasörler üzerinde uygun NTFS izinlerini verin, örneğin: modify on companydata.
Ben olsam belirli bir kullanıcı kullanırdım (Uygulama kullanıcısı DEĞİL). Daha sonra uygulamada kimliğe bürünmeyi etkinleştireceğim. Bunu yaptıktan sonra, belirli kullanıcı olarak hangi hesap ayarlanırsa ayarlansın, bu kimlik bilgileri o sunucudaki yerel kaynaklara erişmek için kullanılır (Harici kaynaklar için değil).
Özel Kullanıcı ayarı özellikle yerel kaynaklara erişim içindir.