2012-01-13 99 views
1

我想在我的winforms应用程序中将IUSR帐户添加到该管理员组。下面的代码失败,因为它无法找到“NT AUTHORITY \ IUSR”用户:如何将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(); 
+5

你为什么这样做? – 2012-01-13 21:04:31

+1

你不能添加一个不存在的用户......你的问题到底是什么? – Yahia 2012-01-13 21:06:34

+3

这是一个***糟糕的主意 – 2012-01-13 21:09:56

回答

1

正确的解决办法是要求身份验证的页面。然后这会提示浏览器让你登录;如果您使用适当授权的帐户,该页面将可以创建新网站。

IIS7允许您通过(例如)ApplicationHost.config配置此功能,而以前的版本需要您编辑元数据库(通常来自IIS管理器)。

编辑:根据身份验证,浏览器和网络配置,可以安排浏览器使用您的域帐户自动登录页面。

1
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); 
DirectoryEntry administrators = AD.Children.Find("Administrators", "group"); 

administrators.Invoke("Add", new object[] {"WinNT://NT AUTHORITY/IUSR"}); 
相关问题