2010-02-15 5 views
1

Возможно ли использовать небольшую страницу .NET для установки разрешений на папку в некоторых папках на сервере, на котором он находится? Что такое код или объекты, которые могут быть использованы для этого? Я нахожусь на Windows Server 2003.Как установить права доступа к папке с .NET?

В принципе, я хочу попасть на страницу с помощью GET или POST и запустить его, а также проверить и/или обновить разрешения в папке.

ответ

2

Для этого вам может понадобиться класс FileIOPermission. Просто убедитесь, что пользователь, под которым работает веб-сайт, имеет это разрешение для выполнения всех параметров безопасности.

6

Существует несколько возможных способов приблизиться к этому.

Одним из них является использование класса FileIOPermissions, который позволяет указывать разрешения на файлы и папки.

Другой вариант заключается в использовании класса DirectorySecurity в пределах пространства имен System.Security.AccessControl, и в частности метода SetAccessControl этого класса.

Этот второй метод должен предоставить вам гораздо большую детализацию и контроль над параметрами разрешений, поскольку пространство имен System.Security.AccessControl позволяет программно создавать или изменять discretionary access control lists (DACLs) and system access control lists (SACLs) для ряда защищенных ресурсов, таких как файлы, папки и скоро.

Независимо от метода, который вы выбрали для настройки разрешения, вам нужно будет помнить об учетной записи, на которой работает ваш управляемый ASP.NET код. Вы говорите, что используете Windows Server 2003, поэтому вы, вероятно, используете IIS version 6.0. По умолчанию IIS 6.0 будет запускать весь код пользователя под учетной записью «Network Service», которая является учетной записью с низким уровнем привилегий и будет иметь ограниченные разрешения за пределами процессов IIS и иерархии веб-сайта. Вы можете прочитать статью MSDN, "How To: Use the Network Service Account to Access Resources in ASP.NET" относительно доступа к ресурсам на стороне сервера и точно, какой доступ вы будете иметь в этой учетной записи.

В зависимости от точного характера того, что вы хотите сделать, вам также может потребоваться изучить ASP.NET Impersonation, чтобы ваш серверный код запускался в контексте другой учетной записи. См. Статью MSDN, «How To: Use Impersonation and Delegation in ASP.NET 2.0» для получения дополнительной информации.

Смежные вопросы