public List <WebConfigEntry> BuildEntry(XElement element, string nodePath, string path) { var configEntries = new List <WebConfigEntry>(); foreach (var property in element.Attributes()) { var configEntry = new WebConfigEntry(element.Name.LocalName, nodePath, element.Attributes(), path); configEntries.Add(configEntry); } return(configEntries); }
internal WebAuthenticationInformation(List <WebConfigEntry> configEntries) { bool isEnabled; if (!configEntries.Any()) { throw new ArgumentException(); } WebConfigEntry firstConfigEntry = configEntries.First(); if (firstConfigEntry.SiteName == firstConfigEntry.Path) { _position = Position.WebSite; } else { _position = Position.WebApp; } foreach (var entry in configEntries) { if (entry.Filter.StartsWith("/system.webServer/security/authentication/")) //TODO move this so auth config is divided earlier in the process { string attributeName = entry.Name.Replace("Authentication", ""); attributeName = attributeName.Substring(0, 1).ToUpper() + attributeName.Substring(1); if (bool.TryParse(entry.Attributes.FirstOrDefault(a => a.Name == "enabled")?.Value, out isEnabled)) { AddAttribute(attributeName, isEnabled); } } } //Anonymous = $true //Basic = $true //Digest = $true //Windows = $true }