Как разрешить пользователю диспетчера 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.