Inilah masalah dengan IIS 7.5 dan ASP.NET yang telah saya teliti dan tidak berhasil. Bantuan apa pun akan sangat dihargai.
Pertanyaan saya adalah: menggunakan ASP.NET di IIS 7.5, bagaimana IIS dan / atau sistem operasi memungkinkan aplikasi web untuk menulis ke folder seperti C:\dump
ketika berjalan di bawah kepercayaan penuh? Bagaimana saya tidak perlu menambahkan akses tulis secara eksplisit untuk pengguna kumpulan aplikasi (dalam hal ini ApplicationPoolIdentity
)?
Setahu saya ini:
- Di IIS 7.5, Identitas default untuk Kumpulan Aplikasi adalah
ApplicationPoolIdentity
. ApplicationPoolIdentity
mewakili akun pengguna Windows yang disebut "IIS APPPOOL \ AppPoolName", yang dibuat saat Application Pool dibuat, di mana AppPoolName adalah nama Pool Aplikasi.- Pengguna "IIS APPPOOL \ AppPoolName" secara default adalah anggota
IIS_IUSRS
grup. - Jika Anda berjalan di bawah Kendali Trust, aplikasi web Anda dapat menulis ke banyak bidang sistem file (tidak termasuk folder seperti
C:\Users
,C:\Windows
, dll). Misalnya, aplikasi Anda akan memiliki akses untuk menulis ke beberapa folder, sepertiC:\dump
,. - Secara default,
IIS_IUSRS
grup tidak diberikan akses baca atau tulisC:\dump
(setidaknya tidak akses yang terlihat melalui tab "Keamanan" di Windows Explorer). - Jika Anda menolak akses tulis
IIS_IUSRS
, Anda akan mendapatkan SecurityException ketika mencoba menulis ke folder (seperti yang diharapkan).
Jadi, dengan mempertimbangkan semua itu, bagaimana akses tulis diberikan kepada pengguna "IIS APPPOOL \ AppPoolName"? Proses w3wp.exe berjalan sebagai pengguna ini, jadi apa yang memungkinkan pengguna ini untuk menulis ke folder yang tampaknya tidak memiliki akses eksplisit?
Harap dicatat bahwa saya mengerti ini mungkin dilakukan demi kenyamanan, karena akan menyulitkan untuk memberikan akses kepada pengguna ke setiap folder yang perlu dituliskan jika Anda menjalankannya di bawah Kepercayaan Penuh. Jika Anda ingin membatasi akses ini, Anda selalu dapat menjalankan aplikasi di bawah Medium Trust. Saya tertarik untuk mencari tahu tentang cara sistem operasi dan / atau IIS memungkinkan penulisan ini terjadi, meskipun tampaknya tidak ada akses sistem file eksplisit yang diberikan.
Klik kanan pada folder.
Klik Properti
Klik Tab Keamanan. Anda akan melihat sesuatu seperti ini:
Periksa / hapus centang akses apa pun yang perlu Anda berikan ke akun
Klik tombol Apply dan kemudian OK.
sumber
Setiap kumpulan aplikasi dalam IIs membuat folder pengguna aman sendiri dengan izin baca / tulis LENGKAP secara default di bawah c: \ pengguna. Buka folder Users Anda dan lihat folder pool aplikasi apa yang ada, klik kanan, dan periksa haknya untuk pool virtual aplikasi pool yang ditugaskan. Anda harus melihat akun kumpulan aplikasi Anda sudah ditambahkan dengan akses baca / tulis yang diberikan ke root dan subfoldernya.
Sehingga jenis akses penyimpanan file dilakukan secara otomatis dan Anda harus dapat menulis apa pun yang Anda suka di dalam folder kumpulan akun pengguna aplikasi tanpa mengubah apa pun. Itu sebabnya akun pengguna virtual untuk setiap kumpulan aplikasi dibuat.
sumber
Saya mencoba ini untuk memperbaiki masalah akses ke situs web IIS, yang dimanifestasikan sebagai sesuatu seperti yang berikut ini di Log Acara → Windows → Aplikasi:
Pada akhirnya saya harus memberikan akses baca
Everyone
grup Windows ke folder itu agar berfungsi dengan benar.sumber