2010-01-06 5 views
0

IIS에서 기본 FTP 사이트의 로컬 경로를 프로그래밍 방식으로 가져 오는 방법이 있습니까?C# - 기본 FTP 사이트의 로컬 경로를 가져 오는 방법이 있습니까?

체감 C : \ 프로그램 파일 \ Ftproot에는 다음과 같습니다 :

DirectoryEntry ftproot = new DirectoryEntry("IIS://localhost/MSFTPSVC/1/Root"); 
string directory; // = ftproot.something 

어떤 아이디어 :

alt text

나는 그것이 같은 것 치지?

편집 : IIS 6.0 용입니다. 확실히 이것은 어딘가에 저장되어야합니다 - 어쩌면 레지스트리에 있습니까? IIS 6

+0

이 문서 수도 도움 (IIS7 전용) : - [C#을 자동화하기 IIS 관리] (http://forums.iis.net/t /1150298.aspx) 두 번째 응답 코드. – GrayWizardx

답변

0

적어도, 여기 레지스트리에 그것을 발견 :

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ 서비스 \ MSFTPSVC \ 매개 변수 가상 루트 \ 데이터의 형식이 조금 이상하다

\ - 예를 들어, D : \ Ftproot입니다 ,, 내가 아는 바로는 alt text

+0

중간 값이 D : \ ftproot ,, 1에 있는지 궁금합니다. 마지막 값은 읽기 및 쓰기 권한의 합계이며, read = 1이고 write = 2 인 것 같습니다. –

2

1은 두 개의 Active Directory의 속성이 있습니다 : msIIS-Ftproot에, msIIS-FTPDir은. Technet

에서

는 기본적으로 사용자의 홈 폴더는 Active Directory의 사용자 개체의 속성 msIIS-Ftproot입니다 및 msIIS-FTPDir를 조회하여 인증에 따라 결정됩니다. msIIS-FTPRoot와 msIIS-FTPDir 값을 연결하면 사용자의 홈 폴더 경로가됩니다.

예는 다음과 같을 수 있습니다

msIIS-FTPRoot = D:\FTP Users 
    msIIS-FTPDir = \JohnSmith 

이 될 것 "D : FTP 사용자가 홍길동 \ \"사용자의 홈 폴더로.

코드는 모든 사용자와이 기본 디렉토리를 탐색하는 방법 :

static void Main(string[] args) 
      {    
       string domain = Environment.GetEnvironmentVariable("USERDNSDOMAIN"); 
       string dc = GetDC(domain); 
       string ldap = String.Format("LDAP://{0}/{1}", domain, dc); 
       DirectoryEntry e = new DirectoryEntry(ldap); 

       DirectorySearcher src = new DirectorySearcher(e, "(objectClass=user)"); 
       SearchResultCollection res = src.FindAll(); 
       foreach (SearchResult r in res) 
       { 
        DirectoryEntry f = r.GetDirectoryEntry(); 
        Console.WriteLine(f.Name + "\t" + f.Properties["msIIS-FTPRoot"].Value + f.Properties["msIIS-FTPDir"].Value); 
       } 
       Console.ReadKey(); 
      } 

private static string GetDC(string domain) 
     { 
      StringBuilder sb = new StringBuilder(domain); 
      sb.Replace(".", ",DC="); 
      sb.Insert(0, "DC="); 
      return sb.ToString(); 
     } 
+0

죄송합니다. GetDC()는 어디에 정의되어 있습니까? –

+0

죄송합니다 .. 코드가 업데이트되었습니다. –

관련 문제