2011-09-19 4 views
0

Je suis en train d'écrire un programme simple pour lister les répertoires virtuels d'un serveur IIS, qui est sur un autre domaine que ma machine locale. Lors de la création de l'objet DirectoryEntry racine, j'ai essayé de passer les informations d'identification avec un qualificatif de domaine, comme celui-ci:Comment utiliser System.DirectoryServices pour accéder à un serveur Web sur un autre domaine

DirectoryEntry entry = new DirectoryEntry("IIS://myremoteserver/W3SVC/1/Root", "mydomain\\myusername", "mypassword"); 

Je reçois un « accès refusé » exception toutefois. Est-ce la bonne façon de faire cela? Tous les exemples de code que j'ai trouvé seulement accéder au serveur web local. Je cours localement WinXP SP3, et essaye de se connecter à un serveur Win2003 R2 (64 bits) exécutant IIS version 6.0.

Répondre

0

j'ai décidé d'utiliser les System.Management classes pour le faire à la place, qui fonctionne lorsque j'utilise un qualificatif de domaine dans la connexion:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Management; 

namespace MyProgram 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      ConnectionOptions options = new ConnectionOptions(); 
      options.Authentication = AuthenticationLevel.PacketPrivacy; 
      options.Username = "somedomain\\username"; 
      options.Password = "password"; 
      ManagementPath path = new ManagementPath(); 
      path.Server = "someserver"; 
      path.NamespacePath = "root/MicrosoftIISv2"; 
      ManagementScope scope = new ManagementScope(path, options); 

      string Query = "select * from IIsWebVirtualDirSetting"; 
      using (ManagementObjectSearcher search = new ManagementObjectSearcher(scope, new ObjectQuery(Query))) 
      { 
       ManagementObjectCollection results = search.Get(); 
       foreach (ManagementObject obj in results) 
       { 
        Console.WriteLine(obj.Properties["Name"].Value); 
       }     
      }   
      Console.ReadLine(); 
     } 
    } 
} 
Questions connexes