示例#1
0
        // Token: 0x06001AC0 RID: 6848 RVA: 0x00064FF8 File Offset: 0x000631F8
        private ServiceResult <EwsRoomType[]> GetAllAvailableRooms()
        {
            UserContext       userContext  = UserContextManager.GetUserContext(base.CallContext.HttpContext, base.CallContext.EffectiveCaller, true);
            QueryFilter       filter       = null;
            AddressLists      addressLists = new AddressLists(base.CallContext.EffectiveCaller.ClientSecurityContext, base.MailboxIdentityMailboxSession.MailboxOwner, userContext);
            ADSessionSettings sessionSettings;

            if (addressLists.AllRoomsAddressList == null)
            {
                filter = new OrFilter(new QueryFilter[]
                {
                    new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RecipientDisplayType, RecipientDisplayType.ConferenceRoomMailbox),
                    new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.RecipientDisplayType, RecipientDisplayType.SyncedConferenceRoomMailbox)
                });
                sessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(addressLists.GlobalAddressList.OrganizationId, addressLists.GlobalAddressList.Id);
            }
            else
            {
                sessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(addressLists.AllRoomsAddressList.OrganizationId, addressLists.AllRoomsAddressList.Id);
            }
            int         lcid        = 0;
            CultureInfo cultureInfo = base.CallContext.AccessingPrincipal.PreferredCultures.FirstOrDefault <CultureInfo>();

            if (cultureInfo != null)
            {
                lcid = cultureInfo.LCID;
            }
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, null, lcid, true, ConsistencyMode.IgnoreInvalid, null, sessionSettings, 123, "GetAllAvailableRooms", "f:\\15.00.1497\\sources\\dev\\clients\\src\\Owa2\\Server\\Core\\ServiceCommands\\GetRoomsInternal.cs");

            ADRecipient[] rooms = tenantOrRootOrgRecipientSession.Find(null, QueryScope.SubTree, filter, new SortBy(ADRecipientSchema.DisplayName, SortOrder.Ascending), 100);
            return(new ServiceResult <EwsRoomType[]>(GetRooms.GetRoomTypes(rooms, this.GetHashCode()).ToArray()));
        }
示例#2
0
        private IRecipientSession CreateGalScopedRecipientSession(AddressBookBase globalAddressList)
        {
            ADSessionSettings adsessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(this.organizationId, (globalAddressList != null) ? globalAddressList.Id : null);

            adsessionSettings.AccountingObject = null;
            return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, this.searchRoot, this.lcid, true, this.consistencyMode, null, adsessionSettings, 641, "CreateGalScopedRecipientSession", "f:\\15.00.1497\\sources\\dev\\AirSync\\src\\AirSync\\GalSearch\\ADABSession.cs"));
        }
示例#3
0
        // Token: 0x0600142A RID: 5162 RVA: 0x00048BF8 File Offset: 0x00046DF8
        private IRecipientSession GetRecipientSession()
        {
            ADSessionSettings sessionSettings;

            if (this.exchangePrincipal.MailboxInfo.Configuration.AddressBookPolicy != null)
            {
                sessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(this.exchangePrincipal.MailboxInfo.OrganizationId, this.globalAddressListId);
            }
            else
            {
                sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(this.exchangePrincipal.MailboxInfo.OrganizationId);
            }
            return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, null, CultureInfo.CurrentCulture.LCID, true, ConsistencyMode.IgnoreInvalid, null, sessionSettings, 210, "GetRecipientSession", "f:\\15.00.1497\\sources\\dev\\clients\\src\\Owa2\\Server\\Core\\people\\AddressLists.cs"));
        }
示例#4
0
        // Token: 0x060007D1 RID: 2001 RVA: 0x00019B1C File Offset: 0x00017D1C
        internal static IRecipientSession CreateADRecipientSession(int lcid, bool readOnly, ConsistencyMode consistencyMode, bool useDirectorySearchRoot, UserContext userContext, bool scopeToGal, IBudget budget)
        {
            ADSessionSettings adsessionSettings;

            if (scopeToGal)
            {
                adsessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(userContext.ExchangePrincipal.MailboxInfo.OrganizationId, (userContext.GetGlobalAddressList(budget) != null) ? userContext.GetGlobalAddressList(budget).Id : null);
            }
            else if (userContext.ExchangePrincipal.MailboxInfo.Configuration.AddressBookPolicy != null)
            {
                adsessionSettings = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(userContext.ExchangePrincipal.MailboxInfo.OrganizationId, userContext.GlobalAddressListId);
            }
            else
            {
                adsessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(userContext.ExchangePrincipal.MailboxInfo.OrganizationId);
            }
            adsessionSettings.AccountingObject = budget;
            return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, useDirectorySearchRoot ? userContext.MailboxIdentity.GetOWAMiniRecipient().QueryBaseDN : null, lcid, readOnly, consistencyMode, null, adsessionSettings, 436, "CreateADRecipientSession", "f:\\15.00.1497\\sources\\dev\\clients\\src\\Owa2\\Server\\Core\\common\\UserContextUtilities.cs"));
        }
        private static void ScopeADRecipientCache(TransportMailItem item)
        {
            Guid gal = StoreDriverDelivery.GetGal(item.RootPart.Headers);

            if (gal == Guid.Empty)
            {
                return;
            }
            ADObjectId        scopingAddressListId                     = new ADObjectId(gal);
            ADSessionSettings sessionSettings                          = ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(item.OrganizationId, scopingAddressListId);
            IRecipientSession tenantOrRootOrgRecipientSession          = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 921, "ScopeADRecipientCache", "f:\\15.00.1497\\sources\\dev\\MailboxTransport\\src\\MailboxTransportDelivery\\StoreDriver\\StoreDriverDelivery.cs");
            ADRecipientCache <TransportMiniRecipient> adrecipientCache = new ADRecipientCache <TransportMiniRecipient>(tenantOrRootOrgRecipientSession, TransportMiniRecipientSchema.Properties, 1, item.OrganizationId);
            Guid addressBookPolicy = StoreDriverDelivery.GetAddressBookPolicy(item.RootPart.Headers);

            foreach (ProxyAddress proxyAddress in item.ADRecipientCache.Keys)
            {
                Result <TransportMiniRecipient> result;
                if (item.ADRecipientCache.TryGetValue(proxyAddress, out result) && result.Data != null && result.Data.AddressBookPolicy != null && result.Data.AddressBookPolicy.ObjectGuid == addressBookPolicy)
                {
                    adrecipientCache.AddCacheEntry(proxyAddress, result);
                }
            }
            item.ADRecipientCache = adrecipientCache;
        }
        // Token: 0x0600123B RID: 4667 RVA: 0x00068564 File Offset: 0x00066764
        public static ADAddressListEnumerator Create(ADObjectId addressList, OrganizationId organizationId, IEnumerable <ADPropertyDefinition> properties, int pageSize, GenerationStats stats)
        {
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromOrganizationIdWithAddressListScopeServiceOnly(organizationId, addressList), 48, "Create", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\OABGenerator\\ADAddressListEnumerator.cs");
            QueryFilter       filter = new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.AddressListMembership, addressList);

            return(new ADAddressListEnumerator(tenantOrRootOrgRecipientSession, null, QueryScope.SubTree, filter, null, pageSize, properties, tenantOrRootOrgRecipientSession.SessionSettings.SkipCheckVirtualIndex)
            {
                session = tenantOrRootOrgRecipientSession,
                stats = stats
            });
        }