asp.net - через - залить сайт на iis




Разрешения на доступ к файлам IIS AppPoolIdentity и файловой системы (2)

  1. Щелкните правой кнопкой мыши папку.

  2. Щелкните Свойства

  3. Нажмите вкладку «Безопасность». Вы увидите что-то вроде этого:

  1. Нажмите кнопку «Изменить ...» на приведенном выше экране. Вы увидите что-то вроде этого:

  1. Нажмите кнопку «Добавить ...» на экране выше. Вы увидите что-то вроде этого:

  1. Нажмите кнопку «Locations ...» на приведенном выше экране. Вы увидите что-то подобное. Теперь перейдите к самой вершине этой древовидной структуры и выберите имя своего компьютера, затем нажмите «ОК».

  1. Теперь введите «iis apppool \ your_apppool_name» и нажмите кнопку «Проверить имена». Если приложение существует, вы увидите свое имя приложения в текстовом поле с подчеркиванием в нем. Нажмите кнопку «ОК».

  1. Отметьте / снимите отметку о том, какой доступ вам нужен для предоставления учетной записи

  2. Нажмите кнопку «Применить», а затем «ОК».

Вот проблема с IIS 7.5 и ASP.NET, с которыми я занимаюсь исследованием и не получаю нигде. Любая помощь будет принята с благодарностью.

Мой вопрос: используя ASP.NET в IIS 7.5, как IIS и / или операционная система позволяют веб-приложению записывать в папку типа C:\dump при запуске под полным доверием? Как мне не нужно явно добавлять доступ для записи для пользователя пула приложений (в данном случае ApplicationPoolIdentity )?

Этого я знаю:

  • В IIS 7.5 идентификатор по умолчанию для пула ApplicationPoolIdentity - ApplicationPoolIdentity .
  • ApplicationPoolIdentity представляет собой учетную запись пользователя Windows под названием «IIS APPPOOL \ AppPoolName», которая создается при создании пула приложений, где AppPoolName является именем пула приложений.
  • Пользователь «IIS APPPOOL \ AppPoolName» по умолчанию является членом группы IIS_IUSRS .
  • Если вы работаете под полным доверием, ваше веб-приложение может записывать во многие области файловой системы (исключая такие папки, как C:\Users , C:\Windows и т. Д.). Например, у вашего приложения будет доступ к записи в некоторые папки, например C:\dump .
  • По умолчанию группе IIS_IUSRS не предоставляется доступ для чтения или записи к C:\dump (по крайней мере, не доступ, который отображается на вкладке «Безопасность» в проводнике Windows).
  • Если вы IIS_IUSRS доступе записи к IIS_IUSRS , вы получите SecurityException при попытке записи в папку (как и ожидалось).

Итак, принимая во внимание все это, каким образом доступ на запись предоставляется пользователю «IIS APPPOOL \ AppPoolName»? Процесс w3wp.exe выполняется как этот пользователь, поэтому что позволяет этому пользователю писать в папку, к которой у него явно нет доступа?

Обратите внимание, что я понимаю, что это, вероятно, было сделано ради удобства, так как было бы больно предоставить пользователю доступ ко всем папкам, которые ему нужно написать, если вы работаете под полным доверием. Если вы хотите ограничить этот доступ, вы всегда можете запустить приложение в разделе «Среднее доверие». Мне интересно узнать о том, как операционная система и / или IIS позволяют выполнять эти записи, даже несмотря на то, что доступ к файловой системе явно отсутствует.


Каждый пул приложений в среде II создает собственную защищенную папку пользователя с ПОЛНЫМ разрешением на чтение и запись по умолчанию в каталоге c: \ users. Откройте папку «Ваши пользователи» и посмотрите, какие папки пулов приложений есть, щелкните правой кнопкой мыши и проверьте их права для назначенной виртуальной учетной записи пула приложений. Вы должны увидеть добавленную вами учетную запись пула приложений, доступную для чтения и записи, назначенной ее корневому и подпапкам.

Таким образом, доступ к типу доступа к файлам автоматически выполняется, и вы должны иметь возможность писать все, что вам нравится, в папках учетных записей пулов приложений, не меняя ничего. Вот почему были созданы виртуальные учетные записи пользователей для каждого пула приложений.





windows-server-2008-r2