Я хочу добавить учетную запись 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();