// Token: 0x06000011 RID: 17 RVA: 0x000024D8 File Offset: 0x000006D8
 private static MailboxConnectivity CheckMailboxConnectivity(MailboxConnectivity mailboxConnectivity)
 {
     try
     {
         mailboxConnectivity.Message = "Getting ADSessionSettings";
         ADSessionSettings adsessionSettings = ADSessionSettings.RootOrgOrSingleTenantFromAcceptedDomainAutoDetect(mailboxConnectivity.TenantAcceptedDomain);
         if (adsessionSettings == null)
         {
             mailboxConnectivity.Message = "ADSessionSettings were not found.";
             return(mailboxConnectivity);
         }
         mailboxConnectivity.Message = "Creating IRecipientSession";
         IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, true, ConsistencyMode.IgnoreInvalid, null, adsessionSettings, 223, "CheckMailboxConnectivity", "f:\\15.00.1497\\sources\\dev\\Management\\src\\ServiceHost\\Servicelets\\AuditLogSearch\\Program\\AuditLogSearchHealthHandler.cs");
         if (tenantOrRootOrgRecipientSession == null)
         {
             mailboxConnectivity.Message = "IRecipientSession was not found.";
             return(mailboxConnectivity);
         }
         bool   flag = mailboxConnectivity.ExchangeUserId.CompareTo(Guid.Empty) == 0;
         ADUser aduser;
         if (flag)
         {
             mailboxConnectivity.Message = "Getting OrganizationId";
             OrganizationId organizationId = OrganizationId.FromAcceptedDomain(mailboxConnectivity.TenantAcceptedDomain);
             mailboxConnectivity.Message = "Finding arbitration mailbox";
             aduser = AdminAuditLogHelper.GetTenantArbitrationMailbox(organizationId);
             mailboxConnectivity.ExchangeUserId = aduser.ExchangeGuid;
         }
         else
         {
             mailboxConnectivity.Message = "Finding ADRecipient";
             ADRecipient adrecipient = tenantOrRootOrgRecipientSession.FindByExchangeGuidIncludingAlternate(mailboxConnectivity.ExchangeUserId);
             aduser = (adrecipient as ADUser);
         }
         if (aduser == null)
         {
             mailboxConnectivity.Message = "ADUser was not found.";
             return(mailboxConnectivity);
         }
         mailboxConnectivity.Message = "Getting ExchangePrincipal";
         ExchangePrincipal principal = ExchangePrincipal.FromADUser(aduser, null);
         mailboxConnectivity.Message = "Creating EwsAuditClient";
         EwsAuditClient client = new EwsAuditClient(new EwsConnectionManager(principal, OpenAsAdminOrSystemServiceBudgetTypeType.Default, ExTraceGlobals.ServiceletTracer), TimeSpan.FromSeconds(5.0), ExTraceGlobals.ServiceletTracer);
         mailboxConnectivity.Message = "Checking connectivity";
         AuditLogSearchHealthHandler.CheckMailboxConnectivity(client, false);
         mailboxConnectivity.Message = "Checking connectivity (archive)";
         AuditLogSearchHealthHandler.CheckMailboxConnectivity(client, true);
         mailboxConnectivity.Message = "Ok";
         mailboxConnectivity.Success = true;
     }
     catch (Exception ex)
     {
         mailboxConnectivity.Message  += " FAILED.";
         mailboxConnectivity.Exception = ex.ToString();
     }
     return(mailboxConnectivity);
 }
 protected override void InternalBeginProcessing()
 {
     TaskLogger.LogEnter();
     base.InternalBeginProcessing();
     this.CheckTopologyType();
     if (this.isRunningOnDatacenter && this.Organization != null)
     {
         string acceptedDomain = this.Organization.ToString();
         base.CurrentOrganizationId = OrganizationId.FromAcceptedDomain(acceptedDomain);
     }
     TaskLogger.LogExit();
 }
예제 #3
0
        public static AADClient Create(string smtpAddress, GraphProxyVersions apiVersion = GraphProxyVersions.Version14)
        {
            ArgumentValidator.ThrowIfNullOrEmpty("smtpAddress", smtpAddress);
            SmtpAddress smtpAddress2 = new SmtpAddress(smtpAddress);

            if (!smtpAddress2.IsValidAddress)
            {
                AADClientFactory.Tracer.TraceDebug <string>(0L, "SMTP address {0} is not valid, cannot create AADClient", smtpAddress);
                return(null);
            }
            OrganizationId organizationId = OrganizationId.FromAcceptedDomain(smtpAddress2.Domain);

            return(AADClientFactory.Create(organizationId, apiVersion));
        }
        public static OAuthCredentials CreateAsApp(InternalClientContext clientContext, RequestLogger requestLogger)
        {
            ArgumentValidator.ThrowIfNull("clientContext", clientContext);
            OrganizationId organizationId = clientContext.OrganizationId;
            string         domain         = clientContext.ADUser.PrimarySmtpAddress.Domain;
            string         text           = FaultInjection.TraceTest <string>((FaultInjection.LIDs) 2743479613U);

            if (!string.IsNullOrEmpty(text))
            {
                domain         = SmtpAddress.Parse(text).Domain;
                organizationId = OrganizationId.FromAcceptedDomain(domain);
            }
            OAuthCredentials oauthCredentialsForAppToken = OAuthCredentials.GetOAuthCredentialsForAppToken(organizationId, domain);

            OAuthCredentialsFactory.SetCredentialsProperties(oauthCredentialsForAppToken, clientContext, requestLogger);
            return(oauthCredentialsForAppToken);
        }
예제 #5
0
        internal static ICredentials GetICredentials(bool appOnly, ADUser user, string domain)
        {
            ICredentials result;

            if (appOnly)
            {
                OrganizationId organizationId = OrganizationId.FromAcceptedDomain(domain);
                result = OAuthCredentials.GetOAuthCredentialsForAppToken(organizationId, domain);
            }
            else
            {
                if (user == null)
                {
                    throw new Exception(Strings.NullUserError);
                }
                OrganizationId organizationId = user.OrganizationId;
                if (organizationId == null)
                {
                    throw new Exception(Strings.NullOrgIdException(user.Name));
                }
                result = OAuthCredentials.GetOAuthCredentialsForAppActAsToken(organizationId, user, domain);
            }
            return(result);
        }