2012-01-13 8 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()}); 

나는 이것이 잘못된 생각이라는 것을 알고 있습니다. 내가 프로그래밍 방식으로 IIS7에서 개발 목적으로 만 새로운 웹 사이트를 만드는 winforms 응용 프로그램을 작성 중이기 때문에이 작업을 수행하고 있습니다. 웹 사이트를 성공적으로 만들지 만 페이지로드를 시도 할 때마다 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

왜이 작업을 수행하고 있습니까? –

+1

존재하지 않는 사용자를 추가 할 수 없습니다 ... 정확히 무엇이 당신의 질문입니까? – Yahia

+3

이것은 *** bad *** 아이디어입니다. –

답변

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"}); 
관련 문제