2014-09-05 6 views
0

Je souhaite définir des informations d'identification pour mon répertoire virtuel. J'ai précédemment créé l'utilisateur et ce que je fais est:Comment définir les informations d'identification VirtualDirectory

 DirectoryEntry site = new DirectoryEntry"IIS://localhost/W3SVC/1/Root"); 
     string className = site.SchemaClassName.ToString(); 
     if ((className.EndsWith("Server")) || (className.EndsWith("VirtualDir"))) 
     { 
      DirectoryEntries vdirs = site.Children; 
      DirectoryEntry existingDirectoryEntry = vdirs.OfType<DirectoryEntry>().SingleOrDefault(d => d.Name == name); 
      if (existingDirectoryEntry != null) 
       throw new Exception("The virtual directory you want to create already exists"); 

      DirectoryEntry newVDir = vdirs.Add(name, (className.Replace("Service", "VirtualDir"))); 
      newVDir.Username = username; 
      newVDir.Password = password; 
      newVDir.Properties["Path"][0] = path; 
      newVDir.Properties["AccessScript"][0] = true; 
      if (authFlags.HasValue) 
       newVDir.Properties["AuthFlags"].Value = authFlags.Value; 

      newVDir.CommitChanges(); 
     } 

Sans définir le nom d'utilisateur et mot de passe répertoire est créé correctement. Lorsque je définis le nom d'utilisateur et le mot de passe, je reçois un message indiquant que le système ne trouve pas le chemin spécifié, mais que le chemin existe. Peut-être que je devrais changer en quelque sorte le type d'authentification?

Répondre

0

J'ai finalement trouvé la solution. Dans ce cas, le nom d'utilisateur et mot de passe doit être défini par les propriétés et non pas directement dans l'objet:

newVDir.Properties["UNCUserName"][0] = username; 
newVDir.Properties["UNCPassword"][0] = password; 

Et qui a résolu mon problème.

Questions connexes