如何将NT AUTHORITYIUSR添加到Administrators组
本文关键字:Administrators 添加 AUTHORITYIUSR NT | 更新日期: 2023-09-27 18:20:19
我想将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();
正确的解决方案是要求对页面进行身份验证。这会提示浏览器让您登录;如果你使用一个适当授权的帐户,那么这个页面就可以创建新的网站。
IIS7允许您从(例如)ApplicationHost.config进行配置,而以前的版本要求您编辑元数据库(通常从IIS管理器)。
编辑:根据身份验证、浏览器和网络配置,可以安排浏览器使用您的域帐户自动登录页面。
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry administrators = AD.Children.Find("Administrators", "group");
administrators.Invoke("Add", new object[] {"WinNT://NT AUTHORITY/IUSR"});