0
我需要設置IIS站點的身份驗證。我看到你可以做.GetLocationPaths()並返回一個位置的字符串數組。但我需要進入他們的孩子元素。IIS7以編程方式獲取位置節點
元素不嵌套在system.applicationHost或system.webServer元素中,因此無法使用config.getSection提取。
任何想法?
我需要設置IIS站點的身份驗證。我看到你可以做.GetLocationPaths()並返回一個位置的字符串數組。但我需要進入他們的孩子元素。IIS7以編程方式獲取位置節點
元素不嵌套在system.applicationHost或system.webServer元素中,因此無法使用config.getSection提取。
任何想法?
最後我把我需要在web.config
Allow Anonymous Access
<authorization>
<allow users="?" />
</authorization>
Disable Anonymous Access
<authorization>
<deny users="?" />
</authorization>
我則只是改變了允許或我的應用程序拒絕。
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