ตกลง. ที่นี่เรากำลังพยายามตั้งค่าเว็บไซต์ Classic ASP ที่ IIS 7.5 ใน Windows Server 2008 R2 มีโฟลเดอร์ชื่อ dbc ภายใต้รูทของเว็บไซต์และมีไฟล์ที่ใช้ในการอ่านและเขียนข้อมูลบางอย่างในขณะที่ประมวลผลทุกหน้า
ปัญหาคือถ้าฉันให้สิทธิ์ในการเขียน IUSR และสิทธิ์ในการเขียน IIS_IUSRS หรือสิทธิ์ในการเขียน DefaultAppPool ฉันจะได้รับ "การเข้าถึงพา ธ 'E: .. \ websiteroot \ dbc \ filename.txt'
แต่ถ้าฉันอนุญาตให้ทุกคนเขียนการเข้าถึงในโฟลเดอร์ dbc นั้นฉันจะไม่ได้รับข้อผิดพลาดใด ๆ ทุกอย่างดูเหมือนจะสมบูรณ์แบบ
ข้อมูลเพิ่มเติม: เว็บไซต์ทำงานในโหมด Classic Pipeline, การพิสูจน์ตัวตนแบบไม่ระบุชื่อถูกเปิดใช้งาน (อาจเป็นเพียงการเปิดใช้งานการรับรองความถูกต้องเท่านั้น) .. และฉันลองใช้การพิสูจน์ตัวตนแบบไม่ระบุชื่อโดยใช้บัญชี IUSR เช่นเดียวกับ Application Pool Identity ในกรณีของฉัน ApplicationPoolIdentity เป็นข้อมูลประจำตัวสำหรับการตรวจสอบความถูกต้องของเว็บไซต์ เราใช้ COM + สำหรับไฟล์ I / O และ Classic ASP Server สร้าง ObjectObject เพื่อยกตัวอย่างวัตถุออกจากมัน COM + ทำงานเป็นบริการเครือข่าย
คิด? ฉันไม่ต้องการให้สิทธิ์การเขียนแก่ทุกคน ฉันพลาดอะไรไปรึเปล่า?
แก้ไขแล้ว: นี่คือสิ่งที่ฉันทำ
เว็บไซต์ของฉันชื่อ CipherDemo ทำงานภายใต้ AppPoolIdentity ใน IIS 7.5 ซึ่งสามารถระบุได้โดย Identity IIS AppPool \ CipherDemo ฉันใช้ ICACLS เพื่อให้สิทธิ์ RW ในโฟลเดอร์นั้น
และ COM + ที่กำลังทำไฟล์ I / O กำลังทำงานภายใต้ Network Service Identity เมื่อฉันใช้การตรวจสอบกระบวนการเพื่อติดตามการเข้าถึงถูกปฏิเสธข้อผิดพลาดมันเปิดบริการเครือข่ายที่มีสิทธิ์อ่านในโฟลเดอร์นั้นเท่านั้น
ฉันใช้ ICACLS "foldername" / grant: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T เพื่อให้สิทธิ์การเขียนในโฟลเดอร์นั้น
และแก้ไขมัน
ฉันตั้งใจว่าตั้งแต่เว็บไซต์ทำงานเป็น CipherDemo Identity นี่จะเป็นบัญชีที่จะใช้ในการเข้าถึงไฟล์ผ่าน COM + แต่มันน่าอายที่จะพบว่า COM + ยังคงทำงานบนขอบเขตของตัวตนของตัวเอง