Exemplo n.º 1
0
        public override void Validate()
        {
            base.Validate();
            DlpPolicyMetaData dlpPolicyMetaData = DlpPolicyParser.ParseDlpPolicyInstance(this.taskObject.TargetItem.TransportRulesXml);

            if (this.taskObject.Fields.IsModified("State"))
            {
                dlpPolicyMetaData.State = this.taskObject.State;
            }
            if (this.taskObject.Fields.IsModified("Mode"))
            {
                dlpPolicyMetaData.Mode = this.taskObject.Mode;
            }
            if (this.taskObject.TargetItem.IsModified(ADObjectSchema.Name))
            {
                dlpPolicyMetaData.Name = this.taskObject.TargetItem.Name;
            }
            if (this.taskObject.Fields.IsModified("Description"))
            {
                dlpPolicyMetaData.Description = this.taskObject.Description;
            }
            ADComplianceProgram adcomplianceProgram = dlpPolicyMetaData.ToAdObject();

            this.taskObject.TargetItem.State             = adcomplianceProgram.State;
            this.taskObject.TargetItem.Name              = adcomplianceProgram.Name;
            this.taskObject.TargetItem.Description       = adcomplianceProgram.Description;
            this.taskObject.TargetItem.TransportRulesXml = adcomplianceProgram.TransportRulesXml;
        }
Exemplo n.º 2
0
 public static byte[] SerializeDlpPolicyInstance(DlpPolicyMetaData dlpPolicyMetaData)
 {
     byte[] result;
     using (MemoryStream memoryStream = new MemoryStream())
     {
         XElement xelement = DlpPolicyParser.CreateDlpPolicyXelement(dlpPolicyMetaData, false);
         xelement.Save(memoryStream);
         result = memoryStream.ToArray();
     }
     return(result);
 }
Exemplo n.º 3
0
        private static XElement CreateDlpPolicyXelement(DlpPolicyMetaData dlpPolicyMetaData, bool includePolicyCommands = false)
        {
            XName name = XName.Get("dlpPolicy");

            object[] array = new object[10];
            array[0] = new XAttribute(XName.Get("version"), dlpPolicyMetaData.Version);
            array[1] = new XAttribute(XName.Get("state"), dlpPolicyMetaData.State);
            array[2] = new XAttribute(XName.Get("mode"), dlpPolicyMetaData.Mode);
            array[3] = new XAttribute(XName.Get("id"), dlpPolicyMetaData.ImmutableId);
            array[4] = new XElement(XName.Get("name"), dlpPolicyMetaData.Name);
            array[5] = new XElement(XName.Get("contentVersion"), dlpPolicyMetaData.ContentVersion);
            array[6] = new XElement(XName.Get("publisherName"), dlpPolicyMetaData.PublisherName);
            array[7] = new XElement(XName.Get("description"), dlpPolicyMetaData.Description);
            array[8] = new XElement(XName.Get("keywords"), from keyword in dlpPolicyMetaData.Keywords
                                    select new XElement(XName.Get("keyword"), keyword));
            array[9] = new XElement(XName.Get("policyCommands"), from commandBlock in includePolicyCommands ? dlpPolicyMetaData.PolicyCommands : new List <string>()
                                    select new XElement(XName.Get("commandBlock"), new XCData(commandBlock)));
            return(new XElement(name, array));
        }
Exemplo n.º 4
0
        public static void AddTenantDlpPolicy(IConfigDataProvider dataSession, DlpPolicyMetaData dlpPolicy, string organizationParameterValue, CmdletRunner cmdletRunner, out IEnumerable <PSObject> results)
        {
            results = null;
            ADComplianceProgram           adcomplianceProgram = dlpPolicy.ToAdObject();
            ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, DlpUtils.TenantDlpPoliciesCollectionName);

            adcomplianceProgram.OrganizationId = dlpPolicyCollection.OrganizationId;
            adcomplianceProgram.SetId(dlpPolicyCollection.Id.GetChildId(dlpPolicy.Name));
            dataSession.Save(adcomplianceProgram);
            IEnumerable <string> enumerable    = Utils.AddOrganizationScopeToCmdlets(dlpPolicy.PolicyCommands, organizationParameterValue);
            string            domainController = null;
            ADSessionSettings sessionSettings  = null;
            MessagingPoliciesSyncLogDataSession messagingPoliciesSyncLogDataSession = dataSession as MessagingPoliciesSyncLogDataSession;

            if (messagingPoliciesSyncLogDataSession != null)
            {
                domainController = messagingPoliciesSyncLogDataSession.LastUsedDc;
                sessionSettings  = messagingPoliciesSyncLogDataSession.SessionSettings;
            }
            try
            {
                foreach (string cmdlet in enumerable)
                {
                    cmdletRunner.RunCmdlet(cmdlet, true);
                }
            }
            catch (ParseException e)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e);
            }
            catch (RuntimeException e2)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e2);
            }
            catch (CmdletExecutionException e3)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e3);
            }
        }
Exemplo n.º 5
0
        internal static DlpPolicyMetaData ParseDlpPolicyInstance(string data)
        {
            DlpPolicyMetaData result;

            try
            {
                XElement          root = XDocument.Parse(data).Root;
                DlpPolicyMetaData dlpPolicyMetaData = new DlpPolicyMetaData();
                dlpPolicyMetaData.Version        = root.Attribute("version").Value.Trim();
                dlpPolicyMetaData.State          = (RuleState)Enum.Parse(typeof(RuleState), root.Attribute("state").Value.Trim());
                dlpPolicyMetaData.Mode           = (RuleMode)Enum.Parse(typeof(RuleMode), root.Attribute("mode").Value.Trim());
                dlpPolicyMetaData.ImmutableId    = ((root.Attribute("id") == null) ? Guid.Empty : Guid.Parse(root.Attribute("id").Value.Trim()));
                dlpPolicyMetaData.ContentVersion = root.Element("contentVersion").Value.Trim();
                dlpPolicyMetaData.PublisherName  = root.Element("publisherName").Value.Trim();
                dlpPolicyMetaData.Name           = root.Element("name").Value.Trim();
                dlpPolicyMetaData.Description    = root.Element("description").Value.Trim();
                dlpPolicyMetaData.Keywords       = (from keyword in root.Element("keywords").Elements("keyword")
                                                    select keyword.Value.Trim()).ToList <string>();
                dlpPolicyMetaData.PolicyCommands = (from policyCommand in root.Element("policyCommands").Elements("commandBlock")
                                                    select policyCommand.Value.Trim()).ToList <string>();
                DlpPolicyMetaData dlpPolicyMetaData2 = dlpPolicyMetaData;
                dlpPolicyMetaData2.Validate();
                result = dlpPolicyMetaData2;
            }
            catch (ArgumentException innerException)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyStateStateInvalid, innerException);
            }
            catch (NullReferenceException innerException2)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyXmlMissingElements, innerException2);
            }
            catch (XmlException innerException3)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyXmlInvalid, innerException3);
            }
            return(result);
        }