예제 #1
0
        public static SmtpAddress?Redact(SmtpAddress?smtp)
        {
            string text;
            string text2;

            return(SuppressingPiiData.Redact(smtp, out text, out text2));
        }
예제 #2
0
        public static string Redact(string value)
        {
            string text;
            string text2;

            return(SuppressingPiiData.Redact(value, out text, out text2));
        }
예제 #3
0
        private static string RedactX400Address(string x400Addr, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            if (string.IsNullOrWhiteSpace(x400Addr))
            {
                return(x400Addr);
            }
            IList <string> list;

            if (!X400AddressParser.TryParse(x400Addr, out list))
            {
                return(x400Addr);
            }
            foreach (int num in SuppressingPiiData.typesNeedRedact)
            {
                if (num < list.Count)
                {
                    string text = SuppressingPiiData.Redact(list[num], out raw, out redacted);
                    if (text != null && X400AddressParser.MaxComponentLengths[num] < text.Length)
                    {
                        text = text.Substring(0, X400AddressParser.MaxComponentLengths[num]);
                    }
                    list[num] = text;
                }
            }
            return(X400AddressParser.ToCanonicalString(list));
        }
예제 #4
0
 public static ADRecipientOrAddress Redact(ADRecipientOrAddress value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     return(new ADRecipientOrAddress(new Participant(SuppressingPiiData.Redact(value.DisplayName, out raw, out redacted), SuppressingPiiData.Redact(value.Address, out raw, out redacted), null)));
 }
예제 #5
0
 public static string Redact(SecurityIdentifier sid, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (sid == null)
     {
         return(null);
     }
     return(SuppressingPiiData.Redact(sid.Value, out raw, out redacted));
 }
예제 #6
0
 public static HeaderValue?Redact(HeaderValue?value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     return(new HeaderValue?(new HeaderValue(SuppressingPiiData.Redact(value.ToString(), out raw, out redacted))));
 }
예제 #7
0
 public static RejectText?Redact(RejectText?value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     return(new RejectText?(new RejectText(SuppressingPiiData.Redact(value.ToString(), out raw, out redacted))));
 }
예제 #8
0
 public static RmsTemplateIdentity Redact(RmsTemplateIdentity value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     return(new RmsTemplateIdentity(value.TemplateId, SuppressingPiiData.Redact(value.TemplateName, out raw, out redacted), value.Type));
 }
예제 #9
0
 public static string ConvertToUpperInvariantAndRedact(string value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (string.IsNullOrWhiteSpace(value))
     {
         return(value);
     }
     return(SuppressingPiiData.Redact(value.ToUpperInvariant(), out raw, out redacted));
 }
예제 #10
0
 public static SmtpAddress Redact(SmtpAddress smtp, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (string.IsNullOrWhiteSpace(smtp.Local) || string.IsNullOrWhiteSpace(smtp.Domain))
     {
         return(smtp);
     }
     return(new SmtpAddress(SuppressingPiiData.Redact(smtp.Local.ToUpperInvariant(), out raw, out redacted), smtp.Domain));
 }
예제 #11
0
        public static IdentityDetails Redact(IdentityDetails identityDetails)
        {
            string     text;
            string     text2;
            ADObjectId identity    = SuppressingPiiData.Redact(identityDetails.Identity, out text, out text2);
            string     name        = SuppressingPiiData.Redact(identityDetails.Name);
            string     displayName = SuppressingPiiData.Redact(identityDetails.DisplayName);

            return(new IdentityDetails(identity, name, displayName, identityDetails.ExternalDirectoryObjectId));
        }
예제 #12
0
        public static RoutingAddress Redact(RoutingAddress address)
        {
            if (string.IsNullOrWhiteSpace(address.LocalPart) || string.IsNullOrWhiteSpace(address.DomainPart))
            {
                return(address);
            }
            string text;
            string text2;

            return(new RoutingAddress(SuppressingPiiData.Redact(address.LocalPart.ToUpperInvariant(), out text, out text2), address.DomainPart));
        }
예제 #13
0
 public static MapiFolderPath Redact(MapiFolderPath folderPath, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (folderPath != null)
     {
         raw        = folderPath.ToString();
         redacted   = SuppressingPiiData.Redact(raw);
         folderPath = new MapiFolderPath('\\' + redacted);
     }
     return(folderPath);
 }
예제 #14
0
        public static ObjectId RedactMailboxStoreObjectId(ObjectId objectId, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            MailboxStoreObjectId mailboxStoreObjectId = objectId as MailboxStoreObjectId;

            if (mailboxStoreObjectId != null)
            {
                return(new MailboxStoreObjectId(SuppressingPiiData.Redact(mailboxStoreObjectId.MailboxOwnerId, out raw, out redacted), mailboxStoreObjectId.StoreObjectId));
            }
            return(objectId);
        }
예제 #15
0
 public static Uri Redact(Uri uri, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (uri != null)
     {
         raw      = uri.OriginalString;
         redacted = SuppressingPiiData.Redact(uri.OriginalString);
         uri      = new Uri(redacted, UriKind.RelativeOrAbsolute);
     }
     return(uri);
 }
예제 #16
0
        public static LocalizedString Redact(LocalizedString value, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            LocalizedString result;

            if (!SuppressingPiiData.TryRedactPiiLocString(value, SuppressingPiiContext.PiiMap, out result))
            {
                result = new LocalizedString(SuppressingPiiData.Redact(value.ToString(), out raw, out redacted));
            }
            return(result);
        }
예제 #17
0
 public static ADObjectId[] Redact(ADObjectId[] values)
 {
     if (values != null && values.Length > 0)
     {
         string text  = null;
         string text2 = null;
         for (int i = 0; i < values.Length; i++)
         {
             values[i] = SuppressingPiiData.Redact(values[i], out text, out text2);
         }
     }
     return(values);
 }
예제 #18
0
 public static MailboxFolder Redact(MailboxFolder folder, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (folder != null)
     {
         folder.Name           = SuppressingPiiData.Redact(folder.Name);
         folder.FolderPath     = SuppressingPiiData.Redact(folder.FolderPath, out raw, out redacted);
         folder.MailboxOwnerId = SuppressingPiiData.Redact(folder.MailboxOwnerId, out raw, out redacted);
         return(folder);
     }
     return(folder);
 }
예제 #19
0
 public static string RedactSmtpAddress(string smtp, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (string.IsNullOrWhiteSpace(smtp))
     {
         return(smtp);
     }
     if (SmtpAddress.IsValidSmtpAddress(smtp))
     {
         return(SuppressingPiiData.Redact(new SmtpAddress(smtp), out raw, out redacted).ToString());
     }
     return(SuppressingPiiData.Redact(smtp, out raw, out redacted));
 }
예제 #20
0
 public static MigrationUserId Redact(MigrationUserId migUserId, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (migUserId == null)
     {
         return(null);
     }
     if (migUserId.JobItemGuid != Guid.Empty)
     {
         return(new MigrationUserId(string.Empty, migUserId.JobItemGuid));
     }
     return(new MigrationUserId(SuppressingPiiData.Redact(migUserId.Id, out raw, out redacted), migUserId.JobItemGuid));
 }
예제 #21
0
 public static SmtpAddress[] Redact(SmtpAddress[] values, out string[] raw, out string[] redacted)
 {
     raw      = null;
     redacted = null;
     if (values != null && values.Length > 0)
     {
         raw      = new string[values.Length];
         redacted = new string[values.Length];
         for (int i = 0; i < values.Length; i++)
         {
             values[i] = SuppressingPiiData.Redact(values[i], out raw[i], out redacted[i]);
         }
     }
     return(values);
 }
예제 #22
0
 public static ObjectId RedactFolderId(ObjectId folderId, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (folderId is MailboxFolderId)
     {
         MailboxFolderId mailboxFolderId = (MailboxFolderId)folderId;
         folderId = new MailboxFolderId(SuppressingPiiData.Redact(mailboxFolderId.MailboxOwnerId, out raw, out redacted), mailboxFolderId.StoreObjectIdValue, mailboxFolderId.MailboxFolderPath);
     }
     if (folderId is Microsoft.Exchange.Data.Storage.Management.PublicFolderId)
     {
         Microsoft.Exchange.Data.Storage.Management.PublicFolderId publicFolderId = (Microsoft.Exchange.Data.Storage.Management.PublicFolderId)folderId;
         folderId = new Microsoft.Exchange.Data.Storage.Management.PublicFolderId(publicFolderId.OrganizationId, publicFolderId.StoreObjectId, SuppressingPiiData.Redact(publicFolderId.MapiFolderPath, out raw, out redacted));
     }
     return(folderId);
 }
예제 #23
0
 public static ADRecipientOrAddress[] Redact(ADRecipientOrAddress[] value, out string[] raw, out string[] redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     raw      = new string[value.Length];
     redacted = new string[value.Length];
     for (int i = 0; i < value.Length; i++)
     {
         value[i] = SuppressingPiiData.Redact(value[i], out raw[i], out redacted[i]);
     }
     return(value);
 }
예제 #24
0
        public static string RedactUMDtmfMap(string value, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            if (string.IsNullOrWhiteSpace(value))
            {
                return(value);
            }
            int num = value.IndexOf(':');

            if (num < 0)
            {
                return(SuppressingPiiData.Redact(value, out raw, out redacted));
            }
            return(value.Substring(0, num + 1) + SuppressingPiiData.Redact(value.Substring(num + 1), out raw, out redacted));
        }
예제 #25
0
 public static KeyValuePair <string, LocalizedString>[] Redact(KeyValuePair <string, LocalizedString>[] value, out string[] raw, out string[] redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     for (int i = 0; i < value.Length; i++)
     {
         string text;
         string text2;
         value[i] = new KeyValuePair <string, LocalizedString>(value[i].Key, SuppressingPiiData.Redact(value[i].Value, out text, out text2));
     }
     return(value);
 }
예제 #26
0
 public static Word[] Redact(Word[] values, out string[] raw, out string[] redacted)
 {
     raw      = null;
     redacted = null;
     if (values != null && values.Any <Word>())
     {
         raw      = new string[values.Length];
         redacted = new string[values.Length];
         Word[] array = new Word[values.Length];
         for (int i = 0; i < values.Length; i++)
         {
             array[i] = new Word(SuppressingPiiData.Redact(values[i].ToString(), out raw[i], out redacted[i]));
         }
         values = array;
     }
     return(values);
 }
예제 #27
0
 public static RecipientIdParameter[] Redact(RecipientIdParameter[] values, out string[] raw, out string[] redacted)
 {
     raw      = null;
     redacted = null;
     if (values != null && values.Any <RecipientIdParameter>())
     {
         raw      = new string[values.Length];
         redacted = new string[values.Length];
         RecipientIdParameter[] array = new RecipientIdParameter[values.Length];
         for (int i = 0; i < values.Length; i++)
         {
             array[i] = SuppressingPiiData.Redact(values[i], out raw[i], out redacted[i]);
         }
         values = array;
     }
     return(values);
 }
예제 #28
0
        public static string RedactLegacyDN(string legacyDN, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            if (string.IsNullOrWhiteSpace(legacyDN))
            {
                return(legacyDN);
            }
            int num = DNConvertor.LastIndexOfUnescapedChar(legacyDN, legacyDN.Length - 1, '/') + 1;

            if (string.Compare(legacyDN, num, "cn=", 0, "cn=".Length, StringComparison.OrdinalIgnoreCase) != 0)
            {
                return(legacyDN);
            }
            num += "cn=".Length;
            return(legacyDN.Substring(0, num) + SuppressingPiiData.Redact(legacyDN.Substring(num), out raw, out redacted));
        }
예제 #29
0
 public static string RedactDN(string dn, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (string.IsNullOrWhiteSpace(dn))
     {
         return(dn);
     }
     if (dn.StartsWith("cn=", StringComparison.OrdinalIgnoreCase))
     {
         int num = DNConvertor.IndexOfUnescapedChar(dn, 0, ',');
         if (num < 0)
         {
             num = dn.Length;
         }
         return(dn.Substring(0, "cn=".Length) + SuppressingPiiData.Redact(dn.Substring("cn=".Length, num - "cn=".Length), out raw, out redacted) + dn.Substring(num));
     }
     return(dn);
 }
예제 #30
0
        public static string RedactAltSecurityId(string altSecurityId, out string raw, out string redacted)
        {
            raw      = null;
            redacted = null;
            if (string.IsNullOrWhiteSpace(altSecurityId))
            {
                return(altSecurityId);
            }
            int    num = altSecurityId.IndexOf(':') + 1;
            string arg = altSecurityId.Substring(0, num);
            NetID  netID;
            string text;

            if (ADUser.ParseSecIDValue(altSecurityId, out netID, out text) || ADUser.ParseConsumerSecIDValue(altSecurityId, out netID))
            {
                return(string.Format("{0}{1}{2}", arg, SuppressingPiiData.Redact(netID.ToString(), out raw, out redacted), altSecurityId.Substring(num + 16)));
            }
            return(altSecurityId);
        }