Baik. Di sini kami mencoba untuk membuat situs web Classic ASP di IIS 7.5 di Windows Server 2008 R2. Ada folder bernama dbc di bawah root situs web dan memiliki file yang digunakan untuk membaca dan menulis informasi tertentu saat setiap halaman diproses.
Masalahnya adalah, jika saya memberikan Izin Menulis IUSR, dan Izin Menulis IIS_IUSRS, atau Izin DefaultAppPool, saya mendapatkan "Akses ke jalur 'E: .. \ websiteroot \ dbc \ filename.txt' ditolak"
Tetapi jika saya memberikan SEMUA ORANG Akses tulis pada folder dbc itu, maka saya tidak mendapatkan kesalahan, semuanya tampak sempurna.
Info Lebih Lanjut: Situs web berjalan dalam mode Classic Pipeline, Anonymous Authentication Diaktifkan (mungkin itu satu-satunya otentikasi diaktifkan) .. Dan saya mencoba otentikasi Anonymous menggunakan akun IUSR dan juga, Application Pool Identity. Dalam kasus saya, ApplicationPoolIdentity adalah Identitas untuk Otentikasi situs web. Kami menggunakan COM + untuk file I / O. Dan Classic ASP Server.CreateObject untuk instantiate objek dari itu. COM + berjalan sebagai Layanan Jaringan.
Pikiran? Saya tidak ingin memberikan izin Menulis kepada SEMUA ORANG. Apakah saya melewatkan sesuatu?
ASK: Inilah yang saya lakukan.
Situs web saya bernama CipherDemo berjalan di bawah AppPoolIdentity di IIS 7.5, yang dapat ditemukan oleh Identity IIS AppPool \ CipherDemo. Saya menggunakan ICACLS untuk memberikan izin RW pada folder itu.
dan COM + yang benar-benar melakukan file I / O sedang berjalan di bawah Network Service Identity. Ketika saya menggunakan Monitor Proses untuk melacak Access Denied Error, ternyata Layanan Jaringan hanya memiliki izin Baca pada folder itu.
Saya menggunakan ICACLS "foldername" / grant: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T untuk memberikan akses tulis pada folder itu.
Dan memecahkannya.
Saya bermaksud bahwa karena situs web berjalan sebagai CipherDemo Identity, ini akan menjadi akun yang akan digunakan untuk mengakses file melalui COM +. Tetapi memalukan mengetahui bahwa COM + masih akan bekerja pada batas-batas Identitasnya sendiri.
sumber
Anda dapat menambahkan akun melalui GUI NTFS dengan mengetiknya secara langsung. Nama ini dalam format
IIS APPPOOL\<<app pool name>>
, misIIS APPPOOL\DefaultAppPool
. (lihat artikel dukungan Microsoft ini )Solusi alternatif: Saya telah menggunakan akun "Layanan Jaringan" sebagai pengguna kumpulan aplikasi yang memberinya izin menulis.
sumber
Jika Anda hanya ingin memberikan izin folder WRITE kepada pengguna tertentu, Anda juga harus mengubah 'identitas pengguna Anonim' situs menjadi 'Pengguna Spesifik', bukan 'Identitas kumpulan aplikasi'.
sumber