Добре. Тут ми намагаємося створити веб-сайт Classic ASP на IIS 7.5 в Windows Server 2008 R2. Під коренем веб-сайту є папка з назвою dbc, і вона має файл, який використовується для читання та запису певної інформації під час обробки кожної сторінки.
Проблема полягає в тому, що якщо я надаю дозволи на запис IUSR та дозволи на запис IIS_IUSRS або дозволи на запис DefaultAppPool, або я отримую "Доступ до шляху" E: .. \ websiteroot \ dbc \ filename.txt 'відмовлено "
Але якщо я надаю доступ до кожної запису в цій папці dbc, я не отримую жодної помилки, все здається ідеальним.
Більше інформації: Веб-сайт працює в режимі класичного конвеєра, ввімкнено анонімну автентифікацію (можливо, це єдиний аутентифікацію). І я спробував анонімну автентифікацію за допомогою облікового запису IUSR, а також ідентифікатора пулу програми. У моєму випадку ApplicationPoolIdentity - це особа для автентифікації веб-сайту. Ми використовуємо COM + для файлу вводу / виводу. І Classic ASP Server.CreateObject для екземпляра об'єкта з нього. COM + працює як мережевий сервіс.
Думки? Я не хочу надати письмовий дозвіл ВСІМ. Я щось пропускаю?
РІШЕНО: Ось що я зробив.
Мій веб-сайт з назвою CipherDemo працював під AppPoolIdentity в IIS 7.5, який міг бути розташований Identity IIS AppPool \ CipherDemo. Я використовував ICACLS для надання дозволу на RW у цій папці.
і COM +, який фактично робив файл вводу-виводу, виконувався під ідентифікацією службової мережі. Коли я використовував Монітор процесу для відстеження помилки відхиленого доступу, виявилося, що мережева служба має лише дозвіл на читання у цій папці.
Я використовував ICACLS "ім'я папки" / grant: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T, щоб надати доступ для запису в цю папку.
І вирішив це.
Я мав намір, що оскільки веб-сайт працює як CipherDemo Identity, це буде обліковий запис, який буде використовуватися для доступу до файлу через COM +. Але соромно з'ясувати, що COM + все ще працюватиме над власними межами ідентичності.