// Token: 0x0600074A RID: 1866 RVA: 0x0001C7C0 File Offset: 0x0001A9C0
        private MailboxSession GetMailboxSession(string organizationIdEncoded, Guid mailboxGuid)
        {
            CacheEntry <MailboxSession> cacheEntry;
            MailboxSession result;

            if (this.sessions.TryGetValue(mailboxGuid, DateTime.UtcNow, out cacheEntry))
            {
                result = cacheEntry.Value;
            }
            else
            {
                OrganizationId    organizationId = AuditRecordDatabaseWriterVisitor.GetOrganizationId(organizationIdEncoded);
                ADSessionSettings adSettings     = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false);
                ExchangePrincipal mailboxOwner   = ExchangePrincipal.FromMailboxGuid(adSettings, mailboxGuid, RemotingOptions.AllowCrossSite, null);
                result = MailboxSession.OpenAsSystemService(mailboxOwner, CultureInfo.InvariantCulture, "Client=Management;Action=AuditLog");
            }
            return(result);
        }
Exemplo n.º 2
0
        private ExchangePrincipal GetExchangePrincipal(string organizationIdEncoded)
        {
            CacheEntry <ExchangePrincipal> cacheEntry;
            ExchangePrincipal exchangePrincipal;

            if (this.principals.TryGetValue(organizationIdEncoded, DateTime.UtcNow, out cacheEntry))
            {
                exchangePrincipal = cacheEntry.Value;
            }
            else
            {
                OrganizationId organizationId           = AuditRecordDatabaseWriterVisitor.GetOrganizationId(organizationIdEncoded);
                ADUser         tenantArbitrationMailbox = AdminAuditWriter.GetTenantArbitrationMailbox(organizationId);
                exchangePrincipal = ExchangePrincipal.FromADUser(tenantArbitrationMailbox, null);
                this.principals.TryAdd(organizationIdEncoded, DateTime.UtcNow, new CacheEntry <ExchangePrincipal>(exchangePrincipal));
            }
            return(exchangePrincipal);
        }