2010-11-08 3 views
2

Как я могу автоматизировать создание пользователя в IIS7?Автоматизация создания пользователя в IIS7

Я использую C#. У меня есть код, который автоматизирует создание веб-сайта, и я нашел несколько примеров для автоматизации создания FTP-сайта.

Мне также необходимо автоматизировать создание пользователя IIS для каждого созданного мной FTP-сайта.

Я мог бы просто отредактировать файл administrator.config, я мог бы просто добавить еще один элемент для каждого нового пользователя, но я не знаю, как установить атрибут пароля, который закодирован. Кроме того, есть более простой и надежный способ сделать это.

Пользователи FTP, которые мне нужно настроить, не связаны ни с одним веб-сайтом. Эти пользователи будут регистрироваться только на FTP-сайте, а не на любом веб-сайте.

Чтобы вручную добавить пользователя, я могу запустить функцию «Диспетчер IIS Users», то просто нажмите на кнопку «Добавить пользователя ...»

Это добавляет запись в файл конфигурации, как я уже говорил в моем оригинальный сообщение.

Затем я связываю этого пользователя с моим ftp-сайтом, добавив правило авторизации FTP для этого пользователя.

Что касается моей текущей конфигурации ... В IIS7 в разделе «Служба управления» в разделе «Учетные данные удостоверения личности» я выбрал «Учетные данные Windows или учетные данные диспетчера IIS».

ответ

2

Для добавления пользователей Administration.config вы можете использовать API в Microsoft.Web.Management.dll ManagementAuthentication.CreateUser, следующий блог показывает, как вызвать его из Powershell: http://blogs.msdn.com/b/carlosag/archive/2009/10/23/adding-iis-manager-users-and-permissions-through-powershell.aspx

Чтобы добавить FTP Авторизация Правило вы можете использовать Microsoft.Web.Administration.dll. См.: http://www.iis.net/ConfigReference/system.ftpServer/security/authorization для примера о том, как это сделать.

Также рассмотрите использование Редактора конфигурации для генерации кода для автоматизации изменений конфигурации IIS. http://blogs.iis.net/webdevelopertips/archive/2009/01/11/tip-42-did-you-know-configurationeditor-allows-you-to-generate-c-javascript-or-appcmd-script-to-update-configuration.aspx

+0

Я пытался использовать Microsoft.Web.Manager.dll, но когда я пошел добавлять ссылку, я не мог найти эту DLL, которую я ожидал бы в рамках ... но я нашел ее в inetsrv , поэтому я скопировал его в каталог проекта и добавил ссылку. (Что-то подсказывает мне, что это не правильный способ добавить ссылку). Затем я вызвал ManagementAuthentication.CreateUser() и получил следующую ошибку: раздел конфигурации «system.webServer/management/authentication» не может быть прочитан, потому что отсутствует объявление раздела – Joe

+0

Кроме того, я играл с редактором конфигурации, но он не похоже, что у меня есть доступ к файлу admin.config, как показано на примере. – Joe

+0

Действительно, Редактор конфигурации не раскрывает файл Administration.config, но использование Microsoft.Web.Management.dll, которое должно быть расположено в% windir% \ system32 \ inetsrv \, является лучшим вариантом, поскольку оно будет поддерживать пользовательских поставщиков (в случае сохранения пользователей в SQL или в другом хранилище). –

0

Ответ заключается в использовании:

Microsoft.Web.Management.Server.ManagementAuthentication.CreateUser (имя пользователя, пароль);

Этот метод будет кодировать пароль для нас.

+1

Вы читали мой ответ выше? Это именно то, что я сказал 10 дней назад. –

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