public ExchangePrincipal FromUserSid(ADSessionSettings adSettings, SecurityIdentifier userSid, RemotingOptions remotingOptions)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     return(this.FromUserSid(adSettings.CreateRecipientSession(null), userSid, remotingOptions));
 }
 private ExchangePrincipal CreateExchangePrincipal(string displayName, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, string mailboxLegacyDN, Guid mailboxGuid, Guid mdbGuid, string primarySmtpAddress, ADObjectId id, OrganizationId orgId, IEnumerable <CultureInfo> preferredCultures, bool bypassRemoteCheck = false, RecipientType userRecipientType = RecipientType.Invalid, Guid?aggregatedMailboxGuid = null)
 {
     return(this.CreateExchangePrincipal(displayName, mailboxLocation, remotingOptions, mailboxLegacyDN, mailboxGuid, mdbGuid, primarySmtpAddress, id, orgId, preferredCultures, bypassRemoteCheck, userRecipientType, RecipientTypeDetails.None, null, false, aggregatedMailboxGuid));
 }
 private ExchangePrincipal CreateExchangePrincipal(string displayName, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, string mailboxLegacyDN, Guid mailboxGuid, Guid mdbGuid, string primarySmtpAddress, ADObjectId id, IEnumerable <CultureInfo> preferredCultures, RecipientType recipientType, SecurityIdentifier masterAccountSid, OrganizationId organizationId, bool isArchive = false)
 {
     return(this.CreateExchangePrincipal(displayName, mailboxLocation, remotingOptions, mailboxLegacyDN, mailboxGuid, mdbGuid, primarySmtpAddress, id, organizationId, preferredCultures, false, recipientType, RecipientTypeDetails.None, masterAccountSid, isArchive, null));
 }
 public ExchangePrincipal FromMiniRecipient(StorageMiniRecipient miniRecipient, RemotingOptions remotingOptions)
 {
     return(this.FromMiniRecipient(new MiniRecipientGenericWrapper(miniRecipient), remotingOptions));
 }
        private ExchangePrincipal CreateExchangePrincipal(IGenericADUser user, ADObjectId mdb, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, bool asArchive, Guid?aggregatedMailboxGuid, IDatabaseLocationProvider databaseLocationProvider, bool isContentIndexing = false)
        {
            ExchangePrincipalBuilder exchangePrincipalBuilder = ((remotingOptions & RemotingOptions.AllowHybridAccess) == RemotingOptions.AllowHybridAccess) ? new RemoteUserMailboxPrincipalBuilder(user) : this.GetExchangePrincipalBuilder(user);

            exchangePrincipalBuilder.SetRemotingOptions(remotingOptions);
            exchangePrincipalBuilder.SetDatabaseLocationProvider(databaseLocationProvider);
            if (!mdb.IsNullOrEmpty())
            {
                exchangePrincipalBuilder.SetSelectedMailboxDatabase(mdb.ObjectGuid);
            }
            if (mailboxLocation != null)
            {
                exchangePrincipalBuilder.SetSelectedMailboxLocation(mailboxLocation);
            }
            if (asArchive)
            {
                exchangePrincipalBuilder.SelectArchiveMailbox();
            }
            exchangePrincipalBuilder.BypassRecipientTypeValidation(isContentIndexing);
            if (aggregatedMailboxGuid != null && aggregatedMailboxGuid != Guid.Empty)
            {
                exchangePrincipalBuilder.SelectMailbox(aggregatedMailboxGuid.Value);
            }
            return(exchangePrincipalBuilder.Build());
        }
        public ExchangePrincipal FromMailboxData(ADSessionSettings adSessionSettings, string displayName, string serverFqdn, string serverLegacyDN, string mailboxLegacyDN, Guid mailboxGuid, Guid mdbGuid, string primarySmtpAddress, ADObjectId id, ICollection <CultureInfo> preferredCultures, IEnumerable <Guid> aggregatedMailboxGuids, RecipientType userRecipientType = RecipientType.Invalid, RemotingOptions remotingOptions = RemotingOptions.AllowCrossSite)
        {
            Util.ThrowOnNullArgument(displayName, "displayName");
            Util.ThrowOnNullArgument(serverFqdn, "serverFqdn");
            Util.ThrowOnNullArgument(serverLegacyDN, "serverLegacyDN");
            Util.ThrowOnNullArgument(preferredCultures, "preferredCultures");
            Util.ThrowOnNullArgument(aggregatedMailboxGuids, "aggregatedMailboxGuids");
            if (displayName.Length == 0)
            {
                throw new ArgumentException("displayName has zero length", "displayName");
            }
            if (serverFqdn.Length == 0)
            {
                throw new ArgumentException("serverFqdn has zero length", "serverFqdn");
            }
            if (serverLegacyDN.Length == 0)
            {
                throw new ArgumentException("serverLegacyDN has zero length", "serverLegacyDN");
            }
            if (mdbGuid == Guid.Empty)
            {
                throw new ArgumentException("Should not be Empty", "mdbGuid");
            }
            if (string.IsNullOrEmpty(mailboxLegacyDN) && mailboxGuid == Guid.Empty)
            {
                throw new ArgumentException(ServerStrings.ExchangePrincipalFromMailboxDataError);
            }
            Guid?aggregatedMailboxGuid = aggregatedMailboxGuids.Any((Guid mailbox) => mailbox == mailboxGuid) ? new Guid?(mailboxGuid) : null;

            return(this.CreateExchangePrincipal(displayName, this.CreateMailboxLocation(new DatabaseLocationInfo(serverFqdn, serverLegacyDN, null, null, false)), remotingOptions, mailboxLegacyDN, mailboxGuid, mdbGuid, primarySmtpAddress, id, (adSessionSettings != null) ? adSessionSettings.CurrentOrganizationId : null, preferredCultures, false, userRecipientType, aggregatedMailboxGuid));
        }
 public ExchangePrincipal FromMailboxData(Guid mailboxGuid, Guid mdbGuid, OrganizationId organizationId, ICollection <CultureInfo> preferredCultures, RemotingOptions remotingOptions)
 {
     return(this.FromMailboxData(mailboxGuid, mdbGuid, organizationId, preferredCultures, remotingOptions, null));
 }
 public ExchangePrincipal FromLegacyDNByMiniRecipient(ADSessionSettings adSettings, string legacyDN, RemotingOptions remotingOptions, PropertyDefinition[] miniRecipientProperties, out StorageMiniRecipient miniRecipient)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     return(this.FromLegacyDNByMiniRecipient(adSettings.CreateRecipientSession(null), legacyDN, remotingOptions, miniRecipientProperties, out miniRecipient));
 }
        public ExchangePrincipal FromLegacyDNByMiniRecipient(IRecipientSession recipientSession, string legacyDN, RemotingOptions remotingOptions, PropertyDefinition[] miniRecipientProperties, out StorageMiniRecipient miniRecipient)
        {
            Util.ThrowOnNullArgument(recipientSession, "recipientSession");
            Util.ThrowOnNullArgument(legacyDN, "legacyDN");
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            if (legacyDN.Length == 0)
            {
                throw new ArgumentException("legacyDN has zero length", "legacyDN");
            }
            Guid mbxGuid;

            legacyDN = this.TryToExtractArchiveOrAggregatedMailboxGuid(legacyDN, out mbxGuid);
            IGenericADUser genericADUser = this.directoryAccessor.FindMiniRecipientByProxyAddress(recipientSession, ProxyAddressPrefix.LegacyDN.GetProxyAddress(legacyDN, true), miniRecipientProperties, out miniRecipient);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            ADObjectId mdb;
            bool       asArchive             = this.UpdateArchiveStatus(mbxGuid, genericADUser, out mdb);
            Guid?      aggregatedMailboxGuid = null;

            if (genericADUser.AggregatedMailboxGuids != null)
            {
                aggregatedMailboxGuid = (genericADUser.AggregatedMailboxGuids.Any((Guid mailbox) => mailbox == mbxGuid) ? new Guid?(mbxGuid) : null);
            }
            IMailboxLocation  mailboxLocation   = new OnDemandMailboxLocation(() => new MailboxDatabaseLocation(this.databaseLocationProvider.GetLocationInfo(mdb.ObjectGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite)));
            ExchangePrincipal exchangePrincipal = this.InternalFromMiniRecipient(genericADUser, mdb, mailboxLocation, remotingOptions, asArchive, aggregatedMailboxGuid);

            if (mbxGuid != Guid.Empty && !exchangePrincipal.MailboxInfo.IsAggregated && !exchangePrincipal.MailboxInfo.IsArchive)
            {
                throw new ObjectNotFoundException(ServerStrings.AggregatedMailboxNotFound(mbxGuid.ToString()));
            }
            return(exchangePrincipal);
        }
 public ExchangePrincipal FromLegacyDN(ADSessionSettings adSettings, string legacyDN, RemotingOptions remotingOptions)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     return(this.FromLegacyDN(adSettings.CreateRecipientSession(null), legacyDN, remotingOptions));
 }
        public ExchangePrincipal FromLegacyDN(IRecipientSession recipientSession, string legacyDN, RemotingOptions remotingOptions)
        {
            Util.ThrowOnNullArgument(recipientSession, "recipientSession");
            Util.ThrowOnNullArgument(legacyDN, "legacyDN");
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            if (legacyDN.Length == 0)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            Guid mbxGuid;

            legacyDN = this.TryToExtractArchiveOrAggregatedMailboxGuid(legacyDN, out mbxGuid);
            IGenericADUser genericADUser = this.directoryAccessor.FindByLegacyExchangeDn(recipientSession, legacyDN);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            ADObjectId mdb;
            bool       asArchive             = this.UpdateArchiveStatus(mbxGuid, genericADUser, out mdb);
            Guid?      aggregatedMailboxGuid = null;

            if (mbxGuid != Guid.Empty && genericADUser.ArchiveGuid != mbxGuid)
            {
                if (genericADUser.AggregatedMailboxGuids != null)
                {
                    aggregatedMailboxGuid = (genericADUser.AggregatedMailboxGuids.Any((Guid mailbox) => mailbox == mbxGuid) ? new Guid?(mbxGuid) : null);
                }
                if (aggregatedMailboxGuid == null && genericADUser.MailboxLocations != null)
                {
                    aggregatedMailboxGuid = (genericADUser.MailboxLocations.Any((IMailboxLocationInfo mailbox) => mailbox.MailboxGuid.Equals(mbxGuid)) ? new Guid?(mbxGuid) : null);
                }
            }
            ExchangePrincipal exchangePrincipal = this.InternalFromADUser(genericADUser, mdb, null, remotingOptions, asArchive, false, aggregatedMailboxGuid);

            if (mbxGuid != Guid.Empty && !exchangePrincipal.MailboxInfo.MailboxGuid.Equals(mbxGuid))
            {
                throw new ObjectNotFoundException(ServerStrings.AggregatedMailboxNotFound(mbxGuid.ToString()));
            }
            return(exchangePrincipal);
        }
        public ExchangePrincipal FromProxyAddress(IRecipientSession session, string proxyAddress, RemotingOptions remotingOptions)
        {
            Util.ThrowOnNullArgument(session, "session");
            Util.ThrowOnNullArgument(proxyAddress, "proxyAddress");
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            if (proxyAddress.Length == 0)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            this.CheckNoCrossPremiseAccess(remotingOptions);
            ProxyAddress   proxyAddress2 = ProxyAddress.Parse(proxyAddress);
            IGenericADUser genericADUser = this.directoryAccessor.FindByProxyAddress(session, proxyAddress2);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            ADObjectId mdb;
            bool       asArchive = this.UpdateArchiveStatus(genericADUser.MailboxGuid, genericADUser, out mdb);

            return(this.InternalFromADUser(genericADUser, mdb, null, remotingOptions, asArchive, false, null));
        }
 public ExchangePrincipal FromProxyAddress(ADSessionSettings adSettings, string proxyAddress, RemotingOptions remotingOptions)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     return(this.FromProxyAddress(adSettings.CreateRecipientSession(null), proxyAddress, remotingOptions));
 }
        public ExchangePrincipal FromUserSid(IRecipientSession recipientSession, SecurityIdentifier userSid, RemotingOptions remotingOptions)
        {
            Util.ThrowOnNullArgument(recipientSession, "recipientSession");
            Util.ThrowOnNullArgument(userSid, "userSid");
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            this.CheckNoCrossPremiseAccess(remotingOptions);
            IGenericADUser genericADUser = this.directoryAccessor.FindBySid(recipientSession, userSid);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            return(this.InternalFromADUser(genericADUser, remotingOptions));
        }
 public ExchangePrincipal FromAnyVersionMailboxData(string displayName, Guid mailboxGuid, Guid mdbGuid, string primarySmtpAddress, string legacyExchangeDN, ADObjectId id, RecipientType recipientType, SecurityIdentifier masterAccountSid, OrganizationId organizationId, RemotingOptions remotingOptions, bool isArchive)
 {
     EnumValidator.ThrowIfInvalid <RecipientType>(recipientType, "recipientType");
     try
     {
         DatabaseLocationInfo locationInfo = this.databaseLocationProvider.GetLocationInfo(mdbGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite);
         return(this.CreateExchangePrincipal(displayName, this.CreateMailboxLocation(locationInfo), remotingOptions, legacyExchangeDN, mailboxGuid, mdbGuid, primarySmtpAddress, id, Array <CultureInfo> .Empty, recipientType, masterAccountSid, organizationId, isArchive));
     }
     catch (DatabaseNotFoundException)
     {
         ExTraceGlobals.StorageTracer.TraceError <Guid>(0L, "Database was not found for mailbox {0}.", mailboxGuid);
     }
     catch (UnableToFindServerForDatabaseException)
     {
         ExTraceGlobals.SessionTracer.TraceError <Guid>(0L, "Server was not found for Database {0}.", mdbGuid);
     }
     return(null);
 }
 public ExchangePrincipal FromMailboxGuid(ADSessionSettings adSettings, Guid mailboxGuid, RemotingOptions remotingOptions, string domainController = null)
 {
     return(this.FromMailboxGuid(adSettings, mailboxGuid, Guid.Empty, remotingOptions, domainController, false));
 }
 public ExchangePrincipal FromADUser(ADSessionSettings adSettings, ADUser user, RemotingOptions remotingOptions, string domainController = null)
 {
     Util.ThrowOnNullArgument(user, "user");
     return(this.FromADUser(adSettings, new ADUserGenericWrapper(user), remotingOptions, domainController));
 }
 public ExchangePrincipal FromMailboxGuid(ADSessionSettings adSettings, Guid mailboxGuid, Guid mdbGuid, RemotingOptions remotingOptions, string domainController = null, bool isContentIndexing = false)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     return(this.FromMailboxGuid(adSettings.CreateRecipientSession(domainController), mailboxGuid, mdbGuid, remotingOptions, isContentIndexing));
 }
 public ExchangePrincipal FromADUser(ADSessionSettings adSettings, IGenericADUser user, RemotingOptions remotingOptions, string domainController = null)
 {
     Util.ThrowOnNullArgument(adSettings, "adSettings");
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     Util.ThrowOnNullArgument(user, "user");
     return(this.InternalFromADUser(user, remotingOptions));
 }
        public ExchangePrincipal FromMailboxGuid(IRecipientSession recipientSession, Guid mailboxGuid, Guid mdbGuid, RemotingOptions remotingOptions, bool isContentIndexing = false)
        {
            Util.ThrowOnNullArgument(recipientSession, "recipientSession");
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            if (mailboxGuid == Guid.Empty)
            {
                throw new ArgumentException("Guid-less mailboxes are not supported by this factory method", "mailboxGuid");
            }
            IGenericADUser genericADUser = this.directoryAccessor.FindByExchangeGuid(recipientSession, mailboxGuid, false);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            ADObjectId mdb;
            bool       asArchive = this.UpdateArchiveStatus(mailboxGuid, genericADUser, out mdb);

            if (mdbGuid != Guid.Empty)
            {
                mdb = new ADObjectId(mdbGuid);
            }
            return(this.InternalFromADUser(genericADUser, mdb, null, remotingOptions, asArchive, isContentIndexing, new Guid?(mailboxGuid)));
        }
 public ExchangePrincipal FromMailboxData(Guid mailboxGuid, Guid mdbGuid, OrganizationId organizationId, ICollection <CultureInfo> preferredCultures, RemotingOptions remotingOptions, DatabaseLocationInfo databaseLocationInfo)
 {
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     if (mailboxGuid == Guid.Empty)
     {
         throw new ArgumentException("Should not be empty", "mailboxGuid");
     }
     if (mdbGuid == Guid.Empty)
     {
         throw new ArgumentException("Should not be empty", "mdbGuid");
     }
     return(this.CreateExchangePrincipal(mailboxGuid.ToString(), this.CreateMailboxLocation(databaseLocationInfo ?? this.databaseLocationProvider.GetLocationInfo(mdbGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite)), remotingOptions, string.Empty, mailboxGuid, mdbGuid, string.Empty, null, organizationId, preferredCultures, false, RecipientType.Invalid, null));
 }
 public ExchangePrincipal FromADUser(IGenericADUser user, RemotingOptions remotingOptions)
 {
     Util.ThrowOnNullArgument(user, "user");
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     return(this.InternalFromADUser(user, remotingOptions));
 }
 private ExchangePrincipal InternalFromMiniRecipient(IGenericADUser adUser, ADObjectId mdb, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, bool asArchive, Guid?aggregatedMailboxGuid = null)
 {
     if (adUser == null)
     {
         throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
     }
     if (mdb == null)
     {
         mdb = adUser.MailboxDatabase;
     }
     if (mailboxLocation == null && mdb != null)
     {
         mailboxLocation = this.CreateMailboxLocation(this.databaseLocationProvider.GetLocationInfo(mdb.ObjectGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite));
     }
     return(this.CreateExchangePrincipal(adUser, mdb, mailboxLocation, remotingOptions, asArchive, aggregatedMailboxGuid, this.databaseLocationProvider, false));
 }
        public ExchangePrincipal FromDirectoryObjectId(IRecipientSession session, ADObjectId directoryEntry, RemotingOptions remoteOptions = RemotingOptions.LocalConnectionsOnly)
        {
            Util.ThrowOnNullArgument(session, "session");
            Util.ThrowOnNullArgument(directoryEntry, "directoryEntry");
            IGenericADUser genericADUser = this.directoryAccessor.FindByObjectId(session, directoryEntry);

            if (genericADUser == null)
            {
                throw new ObjectNotFoundException(ServerStrings.ADUserNotFound);
            }
            return(this.InternalFromADUser(genericADUser, remoteOptions));
        }
 public ExchangePrincipal FromADUser(ADUser user, DatabaseLocationInfo databaseLocationInfo, RemotingOptions remotingOptions)
 {
     Util.ThrowOnNullArgument(user, "user");
     return(this.FromADUser(new ADUserGenericWrapper(user), databaseLocationInfo, remotingOptions));
 }
 private ExchangePrincipal InternalFromADUser(IGenericADUser user, ADObjectId mdb, DatabaseLocationInfo databaseLocationInfo, RemotingOptions remotingOptions)
 {
     return(this.InternalFromADUser(user, mdb, databaseLocationInfo, remotingOptions, false, false, null));
 }
        private ExchangePrincipal CreateExchangePrincipal(string displayName, IMailboxLocation mailboxLocation, RemotingOptions remotingOptions, string mailboxLegacyDN, Guid mailboxGuid, Guid mdbGuid, string primarySmtpAddress, ADObjectId id, OrganizationId orgId, IEnumerable <CultureInfo> preferredCultures, bool bypassRemoteCheck, RecipientType recipientType, RecipientTypeDetails recipientTypeDetails, SecurityIdentifier masterAccountSid = null, bool isArchive = false, Guid?aggregatedMailboxGuid = null)
        {
            ADObjectId     adobjectId = new ADObjectId(mdbGuid);
            IGenericADUser recipient  = new GenericADUser
            {
                MailboxDatabase        = (isArchive ? null : adobjectId),
                ArchiveDatabase        = (isArchive ? adobjectId : null),
                LegacyDn               = mailboxLegacyDN,
                OrganizationId         = orgId,
                DisplayName            = displayName,
                PrimarySmtpAddress     = new SmtpAddress(primarySmtpAddress),
                MailboxGuid            = (isArchive ? Guid.Empty : mailboxGuid),
                ArchiveGuid            = (isArchive ? mailboxGuid : Guid.Empty),
                Languages              = preferredCultures,
                RecipientType          = recipientType,
                RecipientTypeDetails   = recipientTypeDetails,
                ObjectId               = id,
                MasterAccountSid       = masterAccountSid,
                AggregatedMailboxGuids = ((aggregatedMailboxGuid != null) ? new Guid[]
                {
                    aggregatedMailboxGuid.Value
                } : Array <Guid> .Empty)
            };
            ExchangePrincipalBuilder exchangePrincipalBuilder = this.GetExchangePrincipalBuilder(recipient);

            exchangePrincipalBuilder.SetRemotingOptions(remotingOptions);
            exchangePrincipalBuilder.BypassRecipientTypeValidation(true);
            if (mailboxLocation != null)
            {
                exchangePrincipalBuilder.SetSelectedMailboxLocation(mailboxLocation);
            }
            if (isArchive)
            {
                exchangePrincipalBuilder.SelectArchiveMailbox();
            }
            if (aggregatedMailboxGuid != null && aggregatedMailboxGuid != Guid.Empty)
            {
                exchangePrincipalBuilder.SelectMailbox(aggregatedMailboxGuid.Value);
            }
            return(exchangePrincipalBuilder.Build());
        }
 private ExchangePrincipal InternalFromADUser(IGenericADUser user, ADObjectId mdb, DatabaseLocationInfo databaseLocationInfo, RemotingOptions remotingOptions, bool asArchive, bool isContentIndexing = false, Guid?aggregatedMailboxGuid = null)
 {
     if (databaseLocationInfo == null && mdb != null)
     {
         databaseLocationInfo = this.databaseLocationProvider.GetLocationInfo(mdb.ObjectGuid, false, (remotingOptions & RemotingOptions.AllowCrossSite) == RemotingOptions.AllowCrossSite);
     }
     return(this.CreateExchangePrincipal(user, mdb, this.CreateMailboxLocation(databaseLocationInfo), remotingOptions, asArchive, aggregatedMailboxGuid, this.databaseLocationProvider, isContentIndexing));
 }
        public ExchangePrincipal FromADUser(IGenericADUser user, DatabaseLocationInfo databaseLocationInfo, RemotingOptions remotingOptions)
        {
            EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
            Util.ThrowOnNullArgument(user, "user");
            ADObjectId mdb;
            bool       asArchive = this.UpdateArchiveStatus(user.MailboxGuid, user, out mdb);

            return(this.InternalFromADUser(user, mdb, databaseLocationInfo, remotingOptions, asArchive, false, null));
        }
 public ExchangePrincipal FromWindowsIdentity(IRecipientSession recipientSession, WindowsIdentity windowsIdentity, RemotingOptions remotingOptions)
 {
     EnumValidator.ThrowIfInvalid <RemotingOptions>(remotingOptions, "remotingOptions");
     Util.ThrowOnNullArgument(windowsIdentity, "windowsIdentity");
     return(this.FromUserSid(recipientSession, windowsIdentity.User, remotingOptions));
 }