Как добавить NT AUTHORITY \ IUSR в группу администраторов - PullRequest
1 голос
/ 14 января 2012

Я хочу добавить учетную запись IUSR в эту группу администраторов в моем приложении winforms.Приведенный ниже код завершается ошибкой, поскольку он не может найти пользователя для NT AUTHORITY \ IUSR:

 DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
 DirectoryEntry administrators = AD.Children.Find("Administrators", "group");
 DirectoryEntry iusr = AD.Children.Find(@"NT AUTHORITY\IUSR", "user");

 administrators.Invoke("Add", new object[] {iusr.Path.ToString()});

Я понимаю, что это плохая идея.Я делаю это потому, что пишу приложение winforms, которое программно создает новый веб-сайт в IIS7 ТОЛЬКО ДЛЯ ЦЕЛЕЙ РАЗВИТИЯ.Веб-сайт создается успешно, однако ASP.NET выдает ошибку «Доступ запрещен» при каждой попытке загрузки страницы.Когда я добавляю IUSR в группу администраторов, все работает нормально.Что еще я могу попробовать?Ниже приведен код, который я использую для создания нового сайта:

Site site = servermgr.Sites.Add(websitename, physicalpath, port);
Binding binding = site.Bindings.CreateElement();
string bindinginfo = "*:" + port.ToString() + ":" + hostipaddress;

binding.Protocol = "http";
binding.BindingInformation = bindinginfo;
site.Bindings.Clear();
site.Bindings.Add(binding);

site.Applications.Add(applicationpath, applicationphysicalpath);

site.ApplicationDefaults.ApplicationPoolName = "Default";

servermgr.CommitChanges();

Ответы [ 2 ]

1 голос
/ 06 мая 2013
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry administrators = AD.Children.Find("Administrators", "group");

administrators.Invoke("Add", new object[] {"WinNT://NT AUTHORITY/IUSR"});
1 голос
/ 14 января 2012

Правильное решение - требовать аутентификацию для страницы. Затем браузер предложит вам войти в систему; если вы используете учетную запись с соответствующими полномочиями, страница сможет создать новый веб-сайт.

IIS7 позволяет вам настроить это из (например) ApplicationHost.config, тогда как в предыдущих версиях требовалось редактировать метабазу (обычно из диспетчера IIS).

РЕДАКТИРОВАТЬ: В зависимости от аутентификации, браузера и конфигурации сети, можно настроить браузер на автоматический вход на страницу с использованием учетной записи вашего домена.

...