2015-11-03 4 views
2

Я хочу разрешить существующему пользователю диспетчера IIS на сайте или веб-сайте IIS с использованием C#.Как разрешить пользователю IIS Manager на сайт IIS с помощью ServerManager с программным обеспечением

любой может поделиться образцом кода. Было бы очень полезно.

Look at the image Я хочу добавить этих пользователей в программном виде.

Спасибо, Jaswanth

ответ

2

Моя рекомендация будет не делать этого, используя ServerManager, хотя возможно через API конфигурации, не будет уважать модель поставщика, что IIS Поддержка пользователей. Например, у кого-то может быть поставщик базы данных «SQL Server», а ваши пользователи в конфигурации действительно не работают.

Для этого вы используете API в папке Microsoft.Web.Management.dll (в Windows \ system32 \ inetsrv), называемой ManagementAuthentication, которая имеет два метода для этого: CreateUser и Grant.

Я написал запись в блоге несколько лет назад о том, как вызывать их из PowerShell: http://blogs.msdn.com/b/carlosag/archive/2009/10/23/adding-iis-manager-users-and-permissions-through-powershell.aspx

Но называть их так же легко, как:

Microsoft.Web.Management.Server.ManagementAuthentication.CreateUser("MyUser", "ThePassword"); 
Microsoft.Web.Management.Server.ManagementAuthorization.Grant("MyUser", "Default Web Site", false); 

Это будет правильно использовать любой провайдер настроен , и если используется поставщик конфигурации по умолчанию, то это сохранит его в Administration.config, но если бы он был где-то в другом месте, он бы сделал правильные вещи (например, вставляя данные в базу данных или в другое место).

+0

У меня проблема с этим советом. Первая строка действительно создает пользовательский MyUser. Однако вторая строка не кажется достаточной для входа пользователя. Когда я открываю FTP-сайт в диспетчере IIS (после запуска вашего предлагаемого кода), я могу найти MyUser в «Разрешениях диспетчера IIS» на моем FTP-сайте, но я не могу найти его в «Правилах авторизации FTP». Следовательно, FTP-вход завершается с сообщением «530-Пользователь не может войти в систему, домашний каталог недоступен». Как только я добавлю пользователя в «Правила авторизации FTP», он начнет работать. Это происходит с и без изоляции пользователя FTP. Помогите? – DenNukem

+0

О, это спасло мой бекон: [C: \ Windows \ system32 \ inetsrv \ appcmd.exe установить конфигурацию «MyFtpSite» -сегмент: system.ftpServer/security/authorization/+ "[accessType = 'Allow', users = 'MyUser ', permissions =' Read, Write '] "/ commit: apphost] Я не мог войти без него. – DenNukem

0

В итоге я сделал несколько вещей. Первая часть в PowerShell, за совет от Carlos:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Management") 
[Microsoft.Web.Management.Server.ManagementAuthentication]::CreateUser("MyUser", "abc123") 
[Microsoft.Web.Management.Server.ManagementAuthorization]::Grant("MyUser", "MyFtpSite", $FALSE) 

, а затем из командной строки:

appcmd.exe set config "MyFtpSite" -section:system.ftpServer/security/authorization /+"[accessType='Allow',users='MyUser',permissions='Read, Write']" /commit:apphost 

Все в сочетании они позволяют мне добавить новый менеджер IIS пользователя и дать ему права мой FTP-сайт.

Подробнее на Microsoft site.

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