示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }