public static void AddUrlRestriction(IisSite info, UrlRestriction urlRule) { using (var serverManager = ServerManager.OpenRemote(info.Hostname)) { var conf = serverManager.GetWebConfiguration(info.Sitename); // Add URL restrictions var reqFilterSec = conf.GetSection("system.webServer/security/requestFiltering"); var denyUrlCollection = reqFilterSec.GetCollection("denyUrlSequences"); var addElement = denyUrlCollection.CreateElement("add"); addElement["sequence"] = urlRule.Sequence; denyUrlCollection.Add(addElement); // Save changes serverManager.CommitChanges(); } }
public static void RemoveUrlRestriction(IisSite info, UrlRestriction urlRule) { using (var serverManager = ServerManager.OpenRemote(info.Hostname)) { var conf = serverManager.GetWebConfiguration(info.Sitename); // Add URL restrictions var reqFilterSec = conf.GetSection("system.webServer/security/requestFiltering"); var denyUrlCollection = reqFilterSec.GetCollection("denyUrlSequences"); foreach (var element in denyUrlCollection.Where(element => (string)element.Attributes["sequence"].Value == urlRule.Sequence)) { denyUrlCollection.Remove(element); break; } // Save changes serverManager.CommitChanges(); } }