2008-10-20 4 views
5

Мое веб-приложение записывает несколько папок (журналы, загрузки и т. Д.), И я всегда устанавливал эти разрешения вручную через своего хостинг-провайдера.Могу ли я создать папку, которую можно записать в «Среднее доверие»?

Я хотел бы создать сценарий установки, который выполняет это на новых установках. Возможно ли это под средним доверием?

Я даже не могу назвать File.GetAccessControl, не говоря уже о File.SetAccessControl, но мне так не нужен такой «большой молоток». Я просто хочу сделать то, что ISP (в данном случае GoDaddy) позволяет мне делать через консоль управления.

Я считаю, что PHP может это сделать, и я бы хотел рассмотреть страницу PHP для этой цели, если это возможно.

+0

Вы проверили, имеет ли пользователь, выполняющий скрипт, доступ к настройкам Windows Access Controls? – 2010-03-23 17:23:07

ответ

2

Хорошо если вы используете IIS и ASP.NET обычным способом вы должны иметь учетную запись asp.net, под которой платформа выполняет ваше приложение от вашего имени.

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

Думай о нем, как выглядеть примерно так ....

Asp.net загружает приложение (осина счета) соединяет пользователя (iuser счет) входа пользователя в систему (? В зависимости от учетной записи, используемой может быть окна Auth или форм аутентификации, ЭСТ) запросы

пользователей, чтобы сделать что-то, используя вашу оказанный веб-страницу под своими счетами ...

asp.net проверка пользователь имеет разрешения на выполнение операции (asp.net Acount) , если пользователь может сделать это asp.net действует по запрошенному действию (asp.n et account)

Поэтому ... Вы должны уже иметь соответствующие разрешения в этой учетной записи asp.net, чтобы делать то, что вам нужно.

Уровень выше всего этого тоже ... сам сервер IIS работает под учетной записью службы системы/сети.

Итак, вопрос действительно ... Как вы можете предоставить разрешения для возможного пользователя для записи на сервер.

Посмотрите на классы поставщиков членства и roleprovider в рамках, которые вы должны унаследовать от них, и создать класс ActiveDirectoryRoleProvider и ActiveDirectoryMembershipProvider, который будет аутентифицироваться на основе членства в роли пользователей в AD или если вы предпочитаете просто аутентифицировать против БД с базовыми классами провайдеров asp.net.

Надеюсь, это поможет.

+0

О, я бы просто хотел добавить, если вам нужно переопределить уровень доверия кода, вы можете сделать это на основании того, что у пользователя есть разрешение на это. Поэтому, если вы обнаружите, что «среднего доверия» недостаточно, а пользователь аутентифицирован, является администратором sys, тогда я считаю, что вы можете переопределить его на основе требований пользователя. Я, однако, не думаю, что вам нужно будет. – War 2010-05-17 14:40:00