Как разрешить пользователю диспетчера IIS доступ к сайту IIS с помощью ServerManager программно

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

каждый может поделиться примером кода. Это было бы действительно полезно.

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

Спасибо, Джасвант

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, но если он был где-то еще, он будет делать правильные вещи (такие как вставка данных в базу данных или в другое место).).

Я закончил тем, что сделал эти несколько вещей. Первая часть в powershell, по совету Карлоса:

[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 Manager и дать ему права на мой FTP-сайт.

Подробнее на сайте Microsoft.

Другие вопросы по тегам