2009-04-24 11 views
0

Je dois définir l'authentification d'un site IIS. Je vois que vous pouvez faire .GetLocationPaths() et retourner un tableau de chaînes des emplacements. Mais j'ai besoin d'entrer dans leurs éléments enfants.IIS7 Obtient les noeuds d'emplacement par programme

Les éléments ne sont pas imbriqués dans les éléments system.applicationHost ou system.webServer et ne peuvent donc pas être extraits à l'aide de config.getSection.

Des idées?

Répondre

1

j'ai fini par mettre ce que je avais besoin dans le web.config

Allow Anonymous Access 
<authorization> 
    <allow users="?" /> 
</authorization> 

Disable Anonymous Access 
<authorization> 
    <deny users="?" /> 
</authorization> 

Je puis juste changé le autoriser ou refuser ma demande.

Public Shared Function GetWebConfigFileName(ByVal sitePath As String) As String 
    Return IO.Path.Combine(sitePath, "web.config") 
End Function 

Private Shared Function IIS7EnableActiveDir(ByVal sitepath As String, ByVal EnableAD As Boolean) As Boolean 
    Using manager As New ServerManager 

     For Each Site In manager.Sites 

      If Not IsNothing(manager.Sites(Site.Name)) Then 
       If Not IsNothing(manager.Sites(Site.Name).Applications.Item("/")) Then 
        For Each Application In manager.Sites(Site.Name).Applications 
         If Application.VirtualDirectories.Item(0).PhysicalPath.ToString.ToLower = sitepath.ToLower Then 
          If Not String.IsNullOrEmpty(sitepath) Then 
           Dim config As Xml.XmlDocument = New Xml.XmlDocument 
           config.Load(SettingsManager.GetWebConfigFileName(sitepath)) 
           For Each node In config.SelectSingleNode("configuration/system.web/authorization") 
            If TypeOf node Is Xml.XmlElement Then 
             If EnableAD Then 
              If node.Name = "allow" Then 
               'Create new xml attribute 
               Dim newElement As Xml.XmlElement = config.CreateElement("deny") 
               Dim newElementAtt As Xml.XmlAttribute = config.CreateAttribute("users") 
               newElementAtt.Value = "?" 
               newElement.Attributes.Append(newElementAtt) 
               config.SelectSingleNode("configuration/system.web/authorization").RemoveAll() 
               config.SelectSingleNode("configuration/system.web/authorization").AppendChild(newElement) 
               config.Save(SettingsManager.GetWebConfigFileName(sitepath)) 
               Return True 
              End If 
             Else 
              If node.Name = "deny" Then 
               'Create new xml attribute 
               Dim newElement As Xml.XmlElement = config.CreateElement("allow") 
               Dim newElementAtt As Xml.XmlAttribute = config.CreateAttribute("users") 
               newElementAtt.Value = "?" 
               newElement.Attributes.Append(newElementAtt) 
               config.SelectSingleNode("configuration/system.web/authorization").RemoveAll() 
               config.SelectSingleNode("configuration/system.web/authorization").AppendChild(newElement) 
               config.Save(SettingsManager.GetWebConfigFileName(sitepath)) 
               Return True 
              End If 
             End If 
            End If 
           Next 
          End If 
         End If 
        Next 
       End If 
      End If 
     Next 
    End Using 
Questions connexes