นี่คือปัญหาของ IIS 7.5 และ ASP.NET ที่ฉันได้ทำการค้นคว้าและทำให้ไม่มีที่ไหนเลย ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.
คำถามของฉันคือ: ใช้ ASP.NET ใน IIS 7.5, IIS และ / หรือระบบปฏิบัติการอนุญาตให้เว็บแอปพลิเคชันเขียนไปยังโฟลเดอร์เช่นอย่างไรC:\dump
เมื่อทำงานภายใต้ความไว้วางใจอย่างเต็มที่? ฉันไม่ต้องเพิ่มการเข้าถึงการเขียนสำหรับผู้ใช้กลุ่มแอปพลิเคชันอย่างชัดเจน (ในกรณีนี้ApplicationPoolIdentity
) อย่างไร
ฉันรู้สิ่งนี้มาก:
- ใน IIS 7.5
ApplicationPoolIdentity
รหัสประจำตัวเริ่มต้นสำหรับแอพลิเคชันสระว่ายน้ำเป็น ApplicationPoolIdentity
แทนบัญชีผู้ใช้ Windows ที่เรียกว่า "IIS APPPOOL \ AppPoolName" ซึ่งสร้างขึ้นเมื่อ Application Pool ถูกสร้างขึ้นโดยที่ AppPoolName เป็นชื่อของ Application Pool- ผู้ใช้ "IIS APPPOOL \ AppPoolName" เป็นค่าเริ่มต้นเป็นสมาชิกของ
IIS_IUSRS
กลุ่ม - หากคุณกำลังทำงานภายใต้เชื่อถือแบบเต็มโปรแกรมประยุกต์บนเว็บของคุณสามารถเขียนไปหลายพื้นที่ของระบบไฟล์ (ไม่รวมโฟลเดอร์ชอบ
C:\Users
,C:\Windows
ฯลฯ )C:\dump
ยกตัวอย่างเช่นใบสมัครของคุณจะสามารถเข้าถึงการเขียนไปยังโฟลเดอร์บางอย่างเช่น - โดยค่าเริ่มต้น
IIS_IUSRS
กลุ่มจะไม่ได้รับสิทธิ์ในการอ่านหรือเขียนC:\dump
(อย่างน้อยก็ไม่สามารถเข้าถึงได้ซึ่งมองเห็นผ่านแท็บ "ความปลอดภัย" ใน Windows Explorer) - หากคุณปฏิเสธการเข้าถึงเพื่อเขียน
IIS_IUSRS
คุณจะได้รับ SecurityException เมื่อพยายามเขียนไปยังโฟลเดอร์ (ตามที่คาดไว้)
ดังนั้นเมื่อคำนึงถึงสิ่งเหล่านี้แล้วการเข้าถึงการเขียนให้กับผู้ใช้ "IIS APPPOOL \ AppPoolName" เป็นอย่างไร กระบวนการ w3wp.exe ทำงานในฐานะผู้ใช้นี้ดังนั้นสิ่งใดที่อนุญาตให้ผู้ใช้รายนี้เขียนลงในโฟลเดอร์ที่ดูเหมือนจะไม่มีสิทธิ์เข้าถึงอย่างชัดเจน?
โปรดทราบว่าฉันเข้าใจว่านี่อาจเป็นไปได้เพื่อความสะดวกของผู้ใช้เนื่องจากมันเป็นความเจ็บปวดที่จะอนุญาตให้ผู้ใช้เข้าถึงทุก ๆ โฟลเดอร์ที่จำเป็นต้องเขียนถึงหากคุณกำลังทำงานภายใต้ Full Trust หากคุณต้องการ จำกัด การเข้าถึงนี้คุณสามารถเรียกใช้แอปพลิเคชันได้ภายใต้ Medium Trust ฉันสนใจที่จะค้นหาวิธีการที่ระบบปฏิบัติการและ / หรือ IIS อนุญาตให้การเขียนเหล่านี้เกิดขึ้นแม้ว่าจะไม่มีการอนุญาตให้เข้าถึงระบบไฟล์อย่างชัดเจนก็ตาม