Как я могу рекурсивно просматривать все содержимое IIS?

У меня есть следующая программа для просмотра всех виртуальных каталогов и их подкаталогов и файлов (рекурсивно):

static void Main(string[] args)
        {
            string serverName = Environment.MachineName;
            DirectoryEntry dir = new DirectoryEntry("IIS://" + serverName + "/W3SVC/1/ROOT", @"adminusername", @"password");
            dir.AuthenticationType = AuthenticationTypes.Secure;          
            PrintChildren(dir, 0);
        }

        private static void PrintChildren(DirectoryEntry entry,int level)
        {
            foreach (DirectoryEntry child in entry.Children)
            {
                Console.WriteLine("");
                Console.WriteLine("|");
                for (int i = 0; i < level; i++)
                {
                    Console.Write("----");
                }
                Console.Write(child.Name);

                if (child.Children != null)
                {
                    PrintChildren(child,level + 1);
                }
            }
        }

Теперь эта программа действительно перечисляет все виртуальные каталоги, но только в некоторых случаях она перечисляет подкаталоги виртуальных каталогов (такие каталоги, которые я наблюдал, имеют анонимный доступ в IIS).

Как мне убедиться, что эта программа может просматривать все содержимое IIS? Могут ли быть предоставлены / установлены какие-либо другие параметры безопасности?


person coder_bro    schedule 13.01.2009    source источник


Ответы (1)


Я полагаю, вам нужно указать вызывающей стороне правильный DirectoryServicesPermission
Из MSDN: Защита доступа кода для System.DirectoryServices

person Eduardo Molteni    schedule 07.07.2009