Пример #1
0
        public CreateTemplateCode CreateRuleInterfaceTemplate(Guid id, string name, string description, Guid ruleTemplate,
                                                              RuleInterfaceDirection direction, int maxLinks, int sortOrder, RuleInterfaceType type)
        {
            var interfaceType = new RuleInterfaceTemplate();

            if (!_ruleInterfaceTemplates.ContainsKey(id))
            {
                _ruleInterfaceTemplates.Add(id, interfaceType);
                _ruleTemplates[ruleTemplate].RuleInterfaceTemplate.Add(interfaceType);
            }

            interfaceType.ObjId = id;
            var retValue = CreateTemplateCode.Created;


            interfaceType.Name                        = name;
            interfaceType.Description                 = description;
            interfaceType.This2RuleTemplate           = ruleTemplate;
            interfaceType.This2RuleInterfaceDirection = (long)direction;
            interfaceType.MaxLinks                    = maxLinks;
            interfaceType.SortOrder                   = sortOrder;
            interfaceType.InterfaceType               = type;

            _ruleInterfaceTemplates[id] = interfaceType;
            return(retValue);
        }
Пример #2
0
        public Rule(string name, bool enabled, RuleDirection direction, RuleProfile profile, string grouping, string localIPAddress,
                    string localPort, string remoteIPAddress, string remotePort, string protocol, string edgeTraversal, RuleAction action,
                    RuleInterfaceType interfaceType, RuleSecurity security, string source, string description, string program, string service)
        {
            Name      = name;
            Enabled   = enabled;
            Direction = direction;
            Profile   = profile;
            if (Profile == RuleProfile.Any)
            {
                Profiles = "Any";
            }
            else
            {
                var profiles = new List <string>();
                if (IsDomainProfile)
                {
                    profiles.Add("Domain");
                }
                if (IsPrivateProfile)
                {
                    profiles.Add("Private");
                }
                if (IsPublicProfile)
                {
                    profiles.Add("Public");
                }
                Profiles = string.Join(",", profiles.ToArray());
            }

            Grouping        = LoadIndirectString(grouping);
            LocalIPAddress  = localIPAddress;
            LocalPort       = localPort;
            RemoteIPAddress = remoteIPAddress;
            RemotePort      = remotePort;
            Protocol        = protocol;
            EdgeTraversal   = edgeTraversal;
            switch (edgeTraversal.ToLowerInvariant())
            {
            case "yes":
                EdgeTraversalPolicy = RuleEdgeTraversalPolicy.Yes;
                break;

            case "no":
                EdgeTraversalPolicy = RuleEdgeTraversalPolicy.No;
                break;

            case "defer to user":
                EdgeTraversalPolicy = RuleEdgeTraversalPolicy.DeferUser;
                break;

            case "defer to application":
                EdgeTraversalPolicy = RuleEdgeTraversalPolicy.DeferApp;
                break;
            }
            Action        = action;
            InterfaceType = interfaceType;
            Security      = security;
            Source        = source;
            Description   = description;
            Program       = program;
            Service       = service;
        }