예제 #1
0
        // Token: 0x06001AA4 RID: 6820 RVA: 0x0006F970 File Offset: 0x0006DB70
        public void Expand(ADRawEntry recipientToExpand, ADRecipientExpansion.HandleRecipientDelegate handleRecipient, ADRecipientExpansion.HandleFailureDelegate handleFailure)
        {
            if (recipientToExpand == null)
            {
                throw new ArgumentNullException("recipientToExpand");
            }
            ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Requested to expand recipient: {0}", new object[]
            {
                recipientToExpand[ADObjectSchema.Id]
            });
            Stack <ADRecipientExpansion.ExpandableEntry> stack = new Stack <ADRecipientExpansion.ExpandableEntry>();

            if (!this.ProcessChild(recipientToExpand, null, handleRecipient, handleFailure, stack))
            {
                return;
            }
            while (stack.Count > 0)
            {
                ADRecipientExpansion.ExpandableEntry expandableEntry = stack.Pop();
                ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Expanding recipient: {0}", new object[]
                {
                    expandableEntry.Entry[ADObjectSchema.Id]
                });
                if (!this.ExpandEntry(expandableEntry, handleRecipient, handleFailure, stack))
                {
                    ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Expansion terminated by delegate");
                    return;
                }
            }
            ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Expansion completed");
        }
예제 #2
0
        public IAutodMiniRecipient GetNextUserFromSortedList(SmtpAddress emailAddress)
        {
            IRecipientSession recipientSession = DirectorySessionFactory.Default.CreateRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 66, "GetNextUserFromSortedList", "f:\\15.00.1497\\sources\\dev\\autodisc\\src\\AutoDiscoverV2\\TenantRepository.cs");

            this.logger.AppendGenericInfo("GetOnPremUser", "Start Ad lookup");
            QueryFilter filter = new AndFilter(new QueryFilter[]
            {
                new OrFilter(new QueryFilter[]
                {
                    new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RecipientTypeDetails, RecipientTypeDetails.UserMailbox),
                    new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RecipientTypeDetails, RecipientTypeDetails.MailUser)
                }),
                new ComparisonFilter(ComparisonOperator.GreaterThanOrEqual, ADUserSchema.UserPrincipalName, emailAddress.Address)
            });

            ADRawEntry[] array = recipientSession.Find(null, QueryScope.SubTree, filter, null, 1, new PropertyDefinition[]
            {
                ADUserSchema.UserPrincipalName,
                ADRecipientSchema.ExternalEmailAddress
            });
            if (array != null)
            {
                ADRawEntry adrawEntry = array.FirstOrDefault <ADRawEntry>();
                if (adrawEntry != null)
                {
                    return(new AutodMiniRecipient(adrawEntry));
                }
            }
            return(null);
        }
예제 #3
0
        // Token: 0x06001AB2 RID: 6834 RVA: 0x0006FFDC File Offset: 0x0006E1DC
        private bool ExpandContactChain(ADRecipientExpansion.ExpandableEntry contact, ADRecipientExpansion.HandleRecipientDelegate handleRecipient, ADRecipientExpansion.HandleFailureDelegate handleFailure, Stack <ADRecipientExpansion.ExpandableEntry> expansionStack)
        {
            ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Expanding possible contact chain for: {0}", new object[]
            {
                contact.Entry[ADObjectSchema.Id]
            });
            ADRawEntry adrawEntry = this.session.FindByProxyAddress((ProxyAddress)contact.Entry[ADRecipientSchema.ExternalEmailAddress], this.allProperties);

            if (handleRecipient != null)
            {
                ExpansionType    expansionType    = (adrawEntry == null) ? ExpansionType.None : ExpansionType.ContactChain;
                ExpansionControl expansionControl = ADRecipientExpansion.InvokeRecipientDelegate(handleRecipient, contact.Entry, expansionType, contact.Parent);
                if (expansionControl != ExpansionControl.Continue)
                {
                    return(expansionControl != ExpansionControl.Terminate);
                }
            }
            if (adrawEntry != null)
            {
                ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Found chained object: {0}", new object[]
                {
                    adrawEntry[ADObjectSchema.Id]
                });
                return(this.ProcessChild(adrawEntry, contact, handleRecipient, handleFailure, expansionStack));
            }
            ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "No contact chain found");
            return(true);
        }
예제 #4
0
            // Token: 0x06001367 RID: 4967 RVA: 0x00071468 File Offset: 0x0006F668
            protected void RememberIfLinkHasValue(ADRawEntry adRawEntry)
            {
                bool flag = false;

                if ((((ADPropertyDefinition)this.linkProperty).Flags & ADPropertyDefinitionFlags.MultiValued) != ADPropertyDefinitionFlags.None)
                {
                    MultiValuedProperty <ADObjectId> multiValuedProperty = (MultiValuedProperty <ADObjectId>)adRawEntry[this.linkProperty];
                    if (multiValuedProperty != null && multiValuedProperty.Count > 0)
                    {
                        flag = true;
                    }
                }
                else
                {
                    ADObjectId adobjectId = (ADObjectId)adRawEntry[this.linkProperty];
                    if (adobjectId != null)
                    {
                        flag = true;
                    }
                }
                if (flag)
                {
                    adRawEntry.SetIsReadOnly(false);
                    adRawEntry[this.placeholderProperty] = true;
                    adRawEntry[this.linkProperty]        = null;
                }
            }
        private ADRawEntry ChooseBetweenAmbiguousUsers(ADRawEntry[] entries, int lower, int upper)
        {
            if (lower >= upper)
            {
                throw new ArgumentException("lower bound is equal or greater than upper bound");
            }
            if (lower + 1 == upper)
            {
                return(entries[lower]);
            }
            int        num         = (upper - lower) / 2;
            ADRawEntry adrawEntry  = this.ChooseBetweenAmbiguousUsers(entries, lower, lower + num);
            ADRawEntry adrawEntry2 = this.ChooseBetweenAmbiguousUsers(entries, lower + num, upper);

            if (adrawEntry == null || adrawEntry2 == null)
            {
                return(null);
            }
            ADObjectId adobjectId = this.ChooseBetweenAmbiguousUsers(adrawEntry.Id, adrawEntry2.Id);

            if (adobjectId == null)
            {
                return(null);
            }
            if (ADObjectId.Equals(adrawEntry.Id, adobjectId))
            {
                return(adrawEntry);
            }
            return(adrawEntry2);
        }
        // Token: 0x06000587 RID: 1415 RVA: 0x0001EF50 File Offset: 0x0001D150
        protected override AnchorMailbox ResolveAnchorMailbox()
        {
            IIdentity identity = base.HttpContext.User.Identity;
            string    text;

            if (!RequestPathParser.IsRestGroupUserActionRequest(base.ClientRequest.Url.AbsolutePath) && RequestPathParser.TryGetTargetMailbox(base.ClientRequest.Url.PathAndQuery, ref text) && SmtpAddress.IsValidSmtpAddress(text))
            {
                Guid guid;
                Guid guid2;
                if (RequestPathParser.TryParseExternalDirectoryId(text, ref guid, ref guid2))
                {
                    base.Logger.SafeSet(3, "TargetMailbox-ExternalDirectoryObjectId");
                    return(new ExternalDirectoryObjectIdAnchorMailbox(guid.ToString(), guid2, this));
                }
                if (!RequestPathParser.TryParseSpoProxy(text, ref guid2))
                {
                    base.Logger.Set(3, "TargetMailbox-SMTP");
                    return(new SmtpAnchorMailbox(text, this));
                }
                ADRawEntry adrawEntry = DirectoryHelper.ResolveMailboxByProxyAddress(base.LatencyTracker, base.Logger, guid2, text, "SPO");
                if (adrawEntry != null)
                {
                    base.Logger.SafeSet(3, "TargetMailbox-SpoProxy");
                    return(new ProxyAddressAnchorMailbox(adrawEntry, this));
                }
            }
            return(base.ResolveAnchorMailbox());
        }
예제 #7
0
        public override CapabilityEvaluationResult Evaluate(ADRawEntry adObject)
        {
            if (adObject == null)
            {
                throw new ArgumentNullException("adObject");
            }
            ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "Entering SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') CapabilityToCheck '{1}'.", adObject.GetDistinguishedNameOrName(), base.Capability.ToString());
            if (!adObject.propertyBag.Contains(SharedPropertyDefinitions.RawCapabilities))
            {
                ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}' - object doesn't have the Capabilities property.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.NotApplicable.ToString(), base.Capability.ToString());
                return(CapabilityEvaluationResult.NotApplicable);
            }
            CapabilityEvaluationResult capabilityEvaluationResult;

            if (OpathFilterEvaluator.FilterMatches(this.filter, adObject))
            {
                capabilityEvaluationResult = CapabilityEvaluationResult.Yes;
            }
            else
            {
                capabilityEvaluationResult = CapabilityEvaluationResult.No;
            }
            ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}'", adObject.GetDistinguishedNameOrName(), capabilityEvaluationResult.ToString(), base.Capability.ToString());
            return(capabilityEvaluationResult);
        }
예제 #8
0
 // Token: 0x06000433 RID: 1075 RVA: 0x000181F8 File Offset: 0x000163F8
 private static ADRawEntry GetCallerAdEntry(IRequestContext requestContext)
 {
     if (!requestContext.HttpContext.Items.Contains(Constants.CallerADRawEntryKeyName))
     {
         CommonAccessToken commonAccessToken = requestContext.HttpContext.Items["Item-CommonAccessToken"] as CommonAccessToken;
         if (commonAccessToken == null)
         {
             throw new InvalidOperationException("CAT token not present - cannot lookup LiveIdBasic user's AD entry.");
         }
         ADRawEntry               value          = null;
         LatencyTracker           latencyTracker = (LatencyTracker)requestContext.HttpContext.Items[Constants.LatencyTrackerContextKeyName];
         LiveIdBasicTokenAccessor accessor       = LiveIdBasicTokenAccessor.Attach(commonAccessToken);
         if (accessor.TokenType == 2)
         {
             if (ExTraceGlobals.VerboseTracer.IsTraceEnabled(1))
             {
                 ExTraceGlobals.VerboseTracer.TraceDebug <string, string>(0L, "[Extensions::GetFullCallerIdentity] Calling AD to convert PUID {0} for LiveIdMemberName {1} to SID to construct GenericSidIdentity.", accessor.Puid, accessor.LiveIdMemberName);
             }
             ITenantRecipientSession session = DirectoryHelper.GetTenantRecipientSessionFromSmtpOrLiveId(accessor.LiveIdMemberName, requestContext.Logger, latencyTracker, false);
             value = DirectoryHelper.InvokeAccountForest <ADRawEntry>(latencyTracker, () => session.FindUniqueEntryByNetID(accessor.Puid, null, UserBasedAnchorMailbox.ADRawEntryPropertySet, "d:\\dbs\\sh\\e16df\\0212_214120_0\\cmd\\1g\\sources\\Dev\\Cafe\\src\\HttpProxy\\Misc\\LiveIdBasicHelper.cs", 92, "GetCallerAdEntry"), requestContext.Logger, session);
         }
         requestContext.HttpContext.Items[Constants.CallerADRawEntryKeyName] = value;
     }
     return((ADRawEntry)requestContext.HttpContext.Items[Constants.CallerADRawEntryKeyName]);
 }
 // Token: 0x0600131E RID: 4894 RVA: 0x0006E8A9 File Offset: 0x0006CAA9
 public TemplateFileGenerator(IConfigurationSession adSystemConfigSession, ADRawEntry addressTemplateContainer, OABDataFileType oabDataFileType, GenerationStats stats)
 {
     this.adSystemConfigSession    = adSystemConfigSession;
     this.addressTemplateContainer = addressTemplateContainer;
     this.oabDataFileType          = oabDataFileType;
     this.stats = stats;
 }
예제 #10
0
            private ExpansionControl OnRecipient(ADRawEntry recipient, ExpansionType recipientExpansionType, ADRawEntry parent, ExpansionType parentExpansionType)
            {
                bool flag = CertificateManager.IsADDistributionList((RecipientType)recipient[ADRecipientSchema.RecipientType]);

                if (flag && (bool)recipient[ADGroupSchema.HiddenGroupMembershipEnabled])
                {
                    this.certificates.Clear();
                    this.size = 0;
                    return(ExpansionControl.Terminate);
                }
                if (!flag && !this.previouslySeen.Contains(recipient.Identity.ToString()))
                {
                    this.size++;
                    this.previouslySeen.Add(recipient.Identity.ToString());
                    X509Certificate2 adrecipientCert = this.manager.GetADRecipientCert(recipient);
                    if (adrecipientCert != null)
                    {
                        this.certificates.Add(adrecipientCert);
                    }
                }
                if (this.size > GlobalSettings.MaxSMimeADDistributionListExpansion)
                {
                    this.size = 0;
                    this.certificates.Clear();
                    return(ExpansionControl.Terminate);
                }
                return(ExpansionControl.Continue);
            }
예제 #11
0
        public override CapabilityEvaluationResult Evaluate(ADRawEntry adObject)
        {
            if (adObject == null)
            {
                throw new ArgumentNullException("adObject");
            }
            ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "Entering UMFeatureRestrictedCapabilityIdentifierEvaluator.Evaluate('{0}') CapabilityToCheck '{1}'.", adObject.GetDistinguishedNameOrName(), base.Capability.ToString());
            if (!Datacenter.IsMultiTenancyEnabled())
            {
                ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "MasteredOnPremiseCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}' - not datacenter mode.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.NotApplicable.ToString(), base.Capability.ToString());
                return(CapabilityEvaluationResult.NotApplicable);
            }
            CountryInfo countryInfo = (CountryInfo)adObject[ADRecipientSchema.UsageLocation];

            if (null == countryInfo)
            {
                ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "UMFeatureRestrictedCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'.  CapabilityToCheck '{2}' - UsageLocation is '<NULL>'.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.NotApplicable.ToString(), base.Capability.ToString());
                return(CapabilityEvaluationResult.NotApplicable);
            }
            CountryList countryList = CountryListIdCache.Singleton.Get(UMFeatureRestrictedCapabilityIdentifierEvaluator.UMCountryListKey);

            if (countryList == null)
            {
                ExTraceGlobals.AccessCheckTracer.TraceWarning <string, string, string>((long)this.GetHashCode(), "UMFeatureRestrictedCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'.  CapabilityToCheck '{2}' - Cache lookup returned '<NULL>'.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.Yes.ToString(), base.Capability.ToString());
                return(CapabilityEvaluationResult.Yes);
            }
            if (countryList.Countries.Contains(countryInfo))
            {
                ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "UMFeatureRestrictedCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'.  CapabilityToCheck '{2}'.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.No.ToString(), base.Capability.ToString());
                return(CapabilityEvaluationResult.No);
            }
            ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "UMFeatureRestrictedCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'.  CapabilityToCheck '{2}'.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.Yes.ToString(), base.Capability.ToString());
            return(CapabilityEvaluationResult.Yes);
        }
        private void RetrieveFailedItemsCount(ADRawEntry adRawEntry, MailboxType mailboxType)
        {
            base.PerformMailboxDiscovery(adRawEntry, mailboxType, out this.groupId, out this.mailboxInfo);
            switch (this.groupId.GroupType)
            {
            case GroupType.CrossServer:
            case GroupType.CrossPremise:
                base.ExecuteSearchWebService();
                return;

            case GroupType.SkippedError:
            {
                string error = (this.groupId.Error == null) ? string.Empty : this.groupId.Error.Message;
                base.AddFailedMailbox(this.mailboxInfo.LegacyExchangeDN, error);
                return;
            }

            default:
                if (this.mailboxInfo.MailboxGuid != Guid.Empty)
                {
                    Guid   guid            = (mailboxType == MailboxType.Archive) ? this.mailboxInfo.ArchiveDatabase : this.mailboxInfo.MdbGuid;
                    string indexSystemName = FastIndexVersion.GetIndexSystemName(guid);
                    using (IFailedItemStorage failedItemStorage = Factory.Current.CreateFailedItemStorage(Factory.Current.CreateSearchServiceConfig(), indexSystemName))
                    {
                        FailedItemParameters parameters = new FailedItemParameters(FailureMode.All, FieldSet.None)
                        {
                            MailboxGuid = new Guid?(this.mailboxInfo.MailboxGuid)
                        };
                        int totalNonIndexableItems = (int)failedItemStorage.GetFailedItemsCount(parameters);
                        this.UpdateResults(this.mailboxInfo.LegacyExchangeDN, totalNonIndexableItems);
                    }
                }
                return;
            }
        }
예제 #13
0
 // Token: 0x06000849 RID: 2121 RVA: 0x0001E134 File Offset: 0x0001C334
 internal string GetDistinguishedName(IDirectorySession session)
 {
     if (session == null)
     {
         throw new ArgumentNullException("session");
     }
     if (base.InternalADObjectId == null && base.RawIdentity == null)
     {
         throw new InvalidOperationException(Strings.ErrorUninitializedParameter);
     }
     if (base.InternalADObjectId == null || string.IsNullOrEmpty(base.InternalADObjectId.DistinguishedName))
     {
         ADObjectId internalADObjectId = base.InternalADObjectId;
         if (internalADObjectId != null || ADIdParameter.TryResolveCanonicalName(base.RawIdentity, out internalADObjectId))
         {
             ADRawEntry adrawEntry = session.ReadADRawEntry(internalADObjectId, new ADPropertyDefinition[]
             {
                 ADObjectSchema.Id
             });
             if (adrawEntry != null)
             {
                 base.UpdateInternalADObjectId(adrawEntry.Id);
             }
         }
         if (base.InternalADObjectId == null || string.IsNullOrEmpty(base.InternalADObjectId.DistinguishedName))
         {
             throw new NameConversionException(Strings.ErrorConversionFailed(base.RawIdentity));
         }
     }
     return(base.InternalADObjectId.DistinguishedName);
 }
예제 #14
0
 // Token: 0x06001369 RID: 4969 RVA: 0x00071507 File Offset: 0x0006F707
 public override void PreResolveLinks(ADRawEntry adRawEntry)
 {
     if (!(bool)adRawEntry[this.isOrganizationalProperty])
     {
         base.RememberIfLinkHasValue(adRawEntry);
     }
 }
예제 #15
0
 bool IDirectorySession.GetSchemaAndApplyFilter(ADRawEntry adRawEntry, ADScope scope, out ADObject dummyObject, out string[] ldapAttributes, ref QueryFilter filter, ref IEnumerable <PropertyDefinition> properties)
 {
     FfoDirectorySession.LogNotSupportedInFFO(null);
     dummyObject    = null;
     ldapAttributes = null;
     return(false);
 }
		private static HashSet<string> GetEmailAddresses(ADRawEntry person)
		{
			HashSet<string> hashSet = new HashSet<string>();
			object obj;
			if (person.TryGetValueWithoutDefault(ADRecipientSchema.EmailAddresses, out obj))
			{
				ProxyAddressCollection proxyAddressCollection = obj as ProxyAddressCollection;
				if (proxyAddressCollection != null)
				{
					foreach (ProxyAddress proxyAddress in proxyAddressCollection)
					{
						SmtpProxyAddress smtpProxyAddress = proxyAddress as SmtpProxyAddress;
						if (smtpProxyAddress != null)
						{
							string text = ContactInfoForLinking.CanonicalizeEmailAddress(smtpProxyAddress.SmtpAddress);
							if (!string.IsNullOrEmpty(text))
							{
								hashSet.Add(text);
							}
						}
					}
				}
			}
			return hashSet;
		}
예제 #17
0
        ADRawEntry IDirectorySession.ReadADRawEntry(ADObjectId entryId, IEnumerable <PropertyDefinition> properties)
        {
            ADRawEntry adrawEntry = new ADRawEntry();

            adrawEntry.SetId(entryId);
            return(adrawEntry);
        }
		private static string[] GetSmtpAddressCache(ADRawEntry person)
		{
			List<string> list = new List<string>(1);
			object obj;
			if (person.TryGetValueWithoutDefault(ADRecipientSchema.EmailAddresses, out obj))
			{
				ProxyAddressCollection proxyAddressCollection = obj as ProxyAddressCollection;
				if (proxyAddressCollection != null)
				{
					foreach (ProxyAddress proxyAddress in proxyAddressCollection)
					{
						SmtpProxyAddress smtpProxyAddress = proxyAddress as SmtpProxyAddress;
						if (smtpProxyAddress != null)
						{
							string text = smtpProxyAddress.ToString();
							if (!string.IsNullOrEmpty(text))
							{
								list.Add(text);
							}
						}
					}
				}
			}
			return list.ToArray();
		}
예제 #19
0
 internal AuthZPluginUserToken(DelegatedPrincipal delegatedPrincipal, ADRawEntry userEntry, Microsoft.Exchange.Configuration.Core.AuthenticationType authenticatedType, string defaultUserName)
 {
     this.DelegatedPrincipal = delegatedPrincipal;
     this.UserEntry          = userEntry;
     this.AuthenticationType = authenticatedType;
     this.DefaultUserName    = defaultUserName;
 }
예제 #20
0
        private static void ValidateQueryString(string httpURL, ADRawEntry userEntry)
        {
            string text;
            string tenantOrganization = ExchangeRunspaceConfigurationSettings.FromUriConnectionString(httpURL, out text).TenantOrganization;
            string value = tenantOrganization;

            if (string.IsNullOrEmpty(tenantOrganization))
            {
                return;
            }
            AuthZLogger.SafeSetLogger(ConfigurationCoreMetadata.ManagedOrganization, value);
            OrganizationId organizationId = userEntry[ADObjectSchema.OrganizationId] as OrganizationId;

            if (organizationId != null && !ExchangeRunspaceConfiguration.IsAllowedOrganizationForPartnerAccounts(organizationId))
            {
                AuthZLogger.SafeAppendGenericError("ValidateQueryString", string.Format("Organization {0} not allowed for partner account.", organizationId.ToString()), false);
                ExTraceGlobals.AccessDeniedTracer.TraceError <ADObjectId>(0L, "EAP.ValidateQueryString returns AccessDenied because user {0} does not belong to the appropriate organization", userEntry.Id);
                throw new NotAllowedForPartnerAccessException(Strings.ErrorNotAllowedForPartnerAccess);
            }
            Uri uri;

            if (!Uri.TryCreate(httpURL, UriKind.Absolute, out uri))
            {
                AuthZLogger.SafeAppendGenericError("ValidateQueryString", string.Format("Url {0} Incorrect.", httpURL), false);
                ExTraceGlobals.AccessDeniedTracer.TraceError <ADObjectId, string, string>(0L, "EAP.ValidateQueryString returns AccessDenied because tenant user {0} requested partner access to {1} which is not found in the local forest and URL {2} is invalid", userEntry.Id, tenantOrganization, httpURL);
                throw new UrlInValidException(Strings.ErrorUrlInValid);
            }
            ExTraceGlobals.ADConfigTracer.TraceDebug(0L, "EAP.ValidateQueryString returns Success.");
        }
예제 #21
0
        public AddDirectoryCacheRequest(List <Tuple <string, KeyType> > keys, ADRawEntry objectToCache, string forestFqdn, OrganizationId organizationId, IEnumerable <PropertyDefinition> properties, int secondsTimeout = 2147483646, CacheItemPriority priority = CacheItemPriority.Default)
        {
            ArgumentValidator.ThrowIfNull("keys", keys);
            ArgumentValidator.ThrowIfNull("objectToCache", objectToCache);
            ArgumentValidator.ThrowIfOutOfRange <int>("secondsTimeout", secondsTimeout, 1, 2147483646);
            ArgumentValidator.ThrowIfNull("organizationId", organizationId);
            if (keys.Count == 0)
            {
                throw new InvalidOperationException("Keys should not be empty");
            }
            this.Keys = keys;
            ADObject adobject = objectToCache as ADObject;

            if (adobject != null)
            {
                this.Object = SimpleADObject.CreateFrom(adobject, properties);
            }
            else
            {
                this.Object = SimpleADObject.CreateFromRawEntry(objectToCache, properties, true);
            }
            this.ObjectType            = CacheUtils.GetObjectTypeFor(objectToCache.GetType(), true);
            this.SecondsTimeout        = secondsTimeout;
            this.Priority              = priority;
            base.ForestOrPartitionFqdn = forestFqdn;
            base.InternalSetOrganizationId(organizationId);
        }
예제 #22
0
 // Token: 0x06001366 RID: 4966 RVA: 0x0007144C File Offset: 0x0006F64C
 public override void AddPropertyValue(ADRawEntry adRawEntry, PropRow propRow, OABFileRecord oabFileRecord, int index)
 {
     if ((bool)adRawEntry[this.placeholderProperty])
     {
         base.AddPropTagToTruncatedPropertiesProperty(oabFileRecord);
     }
 }