Example #1
0
 // Token: 0x06000D77 RID: 3447 RVA: 0x00028A8C File Offset: 0x00026C8C
 internal static QueryFilter GetMailUserRecipientTypeDetailsFilter()
 {
     return(RecipientIdParameter.GetRecipientTypeDetailsFilter(new RecipientTypeDetails[]
     {
         RecipientTypeDetails.MailUser
     }));
 }
Example #2
0
 public static RecipientIdParameter Redact(RecipientIdParameter value, out string raw, out string redacted)
 {
     raw      = null;
     redacted = null;
     if (value == null)
     {
         return(null);
     }
     return(new RecipientIdParameter(SuppressingPiiData.RedactSmtpAddress(value.RawIdentity, out raw, out redacted)));
 }
Example #3
0
 // Token: 0x06000DB1 RID: 3505 RVA: 0x00028DFC File Offset: 0x00026FFC
 internal static QueryFilter GetRemoteMailboxFilter()
 {
     return(RecipientIdParameter.GetRecipientTypeDetailsFilter(new RecipientTypeDetails[]
     {
         (RecipientTypeDetails)((ulong)int.MinValue),
         RecipientTypeDetails.RemoteRoomMailbox,
         RecipientTypeDetails.RemoteEquipmentMailbox,
         RecipientTypeDetails.RemoteSharedMailbox,
         RecipientTypeDetails.RemoteTeamMailbox
     }));
 }
        internal IEnumerable <T> GetObjectsByAccountName <T>(string accountName, ADObjectId rootId, IRecipientSession session, OptionalIdentityData optionalData) where T : IConfigurable, new()
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            QueryFilter queryFilter = RecipientIdParameter.GetRecipientTypeFilter(this.RecipientTypes);

            queryFilter = QueryFilter.AndTogether(new QueryFilter[]
            {
                queryFilter,
                this.AdditionalQueryFilter,
                (optionalData != null) ? optionalData.AdditionalFilter : null
            });
            return(session.FindByAccountName <T>(null, accountName, rootId, queryFilter));
        }
Example #5
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);
 }
Example #6
0
        internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            EnumerableWrapper <T> wrapper = EnumerableWrapper <T> .GetWrapper(base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));

            if (wrapper.HasElements())
            {
                return(wrapper);
            }
            SecurityPrincipalIdParameter securityPrincipalIdParameter = new SecurityPrincipalIdParameter(base.RawIdentity);
            OptionalIdentityData         optionalIdentityData         = (optionalData == null) ? new OptionalIdentityData() : optionalData.Clone();

            optionalIdentityData.AdditionalFilter = QueryFilter.AndTogether(new QueryFilter[]
            {
                optionalIdentityData.AdditionalFilter,
                RecipientIdParameter.GetRecipientTypeFilter(this.RecipientTypes)
            });
            return(securityPrincipalIdParameter.GetObjects <T>(rootId, session, subTreeSession, optionalIdentityData, out notFoundReason));
        }
 internal static QueryFilter GetRecipientTypeDetailsFilter(RecipientTypeDetails[] recipientTypeDetails)
 {
     return(RecipientIdParameter.GetRecipientFilter <RecipientTypeDetails>(recipientTypeDetails, ADRecipientSchema.RecipientTypeDetails));
 }
 internal static QueryFilter GetRecipientTypeFilter(RecipientType[] recipientTypes)
 {
     return(RecipientIdParameter.GetRecipientFilter <RecipientType>(recipientTypes, ADRecipientSchema.RecipientType));
 }
        internal override IEnumerable <T> GetObjectsInOrganization <T>(string identityString, ADObjectId rootId, IDirectorySession session, OptionalIdentityData optionalData)
        {
            if (Globals.IsConsumerOrganization(session.SessionSettings.CurrentOrganizationId) && ADSessionFactory.UseAggregateSession(session.SessionSettings))
            {
                LocalizedString?localizedString;
                return(ConsumerMailboxIdParameter.Parse(base.RawIdentity).GetObjects <T>(rootId, session, session, optionalData, out localizedString));
            }
            List <QueryFilter> list = new List <QueryFilter>();
            QueryFilter        item = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.ExternalDirectoryObjectId, identityString);

            list.Add(item);
            SmtpAddress smtpAddress = new SmtpAddress(identityString);

            if (smtpAddress.IsValidAddress)
            {
                QueryFilter item2 = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.EmailAddresses, "SMTP:" + smtpAddress.ToString());
                list.Add(item2);
                QueryFilter item3 = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.ExternalEmailAddress, "SMTP:" + smtpAddress.ToString());
                list.Add(item3);
                QueryFilter item4 = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.WindowsLiveID, smtpAddress.ToString());
                list.Add(item4);
            }
            QueryFilter item5 = base.CreateWildcardOrEqualFilter(ADUserSchema.UserPrincipalName, identityString);

            list.Add(item5);
            QueryFilter item6 = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.LegacyExchangeDN, identityString);

            list.Add(item6);
            QueryFilter item7 = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.EmailAddresses, "X500:" + identityString);

            list.Add(item7);
            QueryFilter queryFilter = base.CreateWildcardOrEqualFilter(ADRecipientSchema.Alias, identityString);

            if (queryFilter != null)
            {
                list.Add(queryFilter);
            }
            if (this.SearchWithDisplayName)
            {
                QueryFilter queryFilter2 = base.CreateWildcardOrEqualFilter(ADRecipientSchema.DisplayName, identityString);
                if (queryFilter2 != null)
                {
                    list.Add(queryFilter2);
                }
            }
            NetID propertyValue;

            if (NetID.TryParse(identityString, out propertyValue))
            {
                QueryFilter item8 = new ComparisonFilter(ComparisonOperator.Equal, ADUserSchema.NetID, propertyValue);
                list.Add(item8);
            }
            Guid guid = Guid.Empty;

            if (base.InternalADObjectId != null)
            {
                guid = base.InternalADObjectId.ObjectGuid;
            }
            if (Guid.Empty != guid || GuidHelper.TryParseGuid(identityString, out guid))
            {
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ADMailboxRecipientSchema.ExchangeGuid, guid));
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ADUserSchema.ArchiveGuid, guid));
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.ExchangeObjectId, guid));
                list.Add(new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.MailboxGuidsRaw, guid.ToString()));
                this.rawMailboxGuidInvolvedInSearch = guid;
            }
            QueryFilter queryFilter3        = QueryFilter.OrTogether(list.ToArray());
            QueryFilter recipientTypeFilter = RecipientIdParameter.GetRecipientTypeFilter(this.RecipientTypes);

            queryFilter3 = QueryFilter.AndTogether(new QueryFilter[]
            {
                queryFilter3,
                recipientTypeFilter
            });
            EnumerableWrapper <T> enumerableWrapper = EnumerableWrapper <T> .GetWrapper(base.PerformPrimarySearch <T>(queryFilter3, rootId, session, true, optionalData));

            if (!enumerableWrapper.HasElements())
            {
                this.rawMailboxGuidInvolvedInSearch = Guid.Empty;
                OptionalIdentityData optionalIdentityData;
                if (optionalData == null)
                {
                    optionalIdentityData = new OptionalIdentityData();
                    optionalIdentityData.AdditionalFilter = recipientTypeFilter;
                }
                else
                {
                    optionalIdentityData = optionalData.Clone();
                    optionalIdentityData.AdditionalFilter = QueryFilter.AndTogether(new QueryFilter[]
                    {
                        optionalIdentityData.AdditionalFilter,
                        recipientTypeFilter
                    });
                }
                enumerableWrapper = base.GetEnumerableWrapper <T>(enumerableWrapper, base.GetObjectsInOrganization <T>(identityString, rootId, session, optionalIdentityData));
            }
            return(enumerableWrapper);
        }