コード例 #1
0
 public static Uri GetRootSiteUrl(OrganizationId organizationId)
 {
     if (organizationId == OrganizationId.ForestWideOrgId)
     {
         return(null);
     }
     try
     {
         Uri uri = SharePointUrl.GetRootSiteUrlFromExchangeAD(organizationId);
         if (uri != null)
         {
             if (uri != SharePointUrl.NoSharePointSubscription)
             {
                 SharePointUrl.Tracer.TraceDebug <OrganizationId, Uri>(0L, "Found SharePoint Root Site Url in Exchange AD for organization {0}: {1}", organizationId, uri);
                 return(uri);
             }
             SharePointUrl.Tracer.TraceDebug <OrganizationId>(0L, "Organization {0} has no SharePoint subscription", organizationId);
             return(null);
         }
         else
         {
             uri = SharePointUrl.GetRootSiteUrlFromAAD(organizationId);
             if (uri == null)
             {
                 uri = SharePointUrl.NoSharePointSubscription;
                 SharePointUrl.Tracer.TraceDebug <OrganizationId>(0L, "Organization {0} has no SharePoint subscription", organizationId);
             }
             try
             {
                 SharePointUrl.SetRootSiteUrlInExchangeAD(organizationId, uri);
             }
             catch (LocalizedException arg)
             {
                 SharePointUrl.Tracer.TraceError <LocalizedException>(0L, "Failed to set SharePoint Root Site Url in Exchange AD: {0}", arg);
             }
             if (uri != SharePointUrl.NoSharePointSubscription)
             {
                 return(uri);
             }
         }
     }
     catch (LocalizedException arg2)
     {
         SharePointUrl.Tracer.TraceError <LocalizedException>(0L, "Exception while getting the SharePoint Root Site Url: {0}", arg2);
     }
     return(null);
 }
コード例 #2
0
        private static Uri GetRootSiteUrlFromAAD(OrganizationId organizationId)
        {
            AADClient aadclient = AADClientFactory.Create(organizationId, GraphProxyVersions.Version14);

            if (aadclient == null)
            {
                SharePointUrl.Tracer.TraceDebug <OrganizationId>(0L, "Failed to create AADClient for organization {0}", organizationId);
                return(null);
            }
            Uri rootSiteUrlFromServiceInfo = SharePointUrl.GetRootSiteUrlFromServiceInfo(aadclient);

            if (rootSiteUrlFromServiceInfo != null)
            {
                SharePointUrl.Tracer.TraceDebug <OrganizationId, Uri>(0L, "Found SharePoint Root Site Url in ServiceInfo for organization {0}: {1}", organizationId, rootSiteUrlFromServiceInfo);
            }
            return(rootSiteUrlFromServiceInfo);
        }
コード例 #3
0
        private ClientContext GetTenantClientContext()
        {
            Uri rootSiteUrl = SharePointUrl.GetRootSiteUrl(this.organizationId);

            if (rootSiteUrl == null)
            {
                return(null);
            }
            ClientContext clientContext = new ClientContext(rootSiteUrl);

            clientContext.ExecutingWebRequest += delegate(object sender, WebRequestEventArgs request)
            {
                request.WebRequestExecutor.RequestHeaders.Add(HttpRequestHeader.Authorization, "Bearer");
                request.WebRequestExecutor.RequestHeaders.Add("SPResponseGuid", this.activityId.ToString());
                request.WebRequestExecutor.WebRequest.PreAuthenticate = true;
            };
            clientContext.Credentials = this.actAsUserCredentials;
            return(clientContext);
        }
コード例 #4
0
        private static Uri GetRootSiteUrlFromDefaultDomain(AADClient aadClient)
        {
            string siteDomainSubstring = SharePointUrl.GetSiteDomainSubstring();

            if (string.IsNullOrEmpty(siteDomainSubstring))
            {
                SharePointUrl.Tracer.TraceError(0L, "Failed to get site domain substring");
                return(null);
            }
            string text = null;

            try
            {
                text = aadClient.GetDefaultDomain();
                if (string.IsNullOrEmpty(text))
                {
                    SharePointUrl.Tracer.TraceError(0L, "Failed to get default domain");
                    return(null);
                }
            }
            catch (AADException arg)
            {
                SharePointUrl.Tracer.TraceError <AADException>(0L, "GetDefaultDomain failed: {0}", arg);
                return(null);
            }
            int num = text.IndexOf('.');

            if (num > 0)
            {
                string str  = text.Substring(0, num);
                string str2 = str + (siteDomainSubstring.StartsWith(".", StringComparison.Ordinal) ? siteDomainSubstring : ("." + siteDomainSubstring));
                try
                {
                    return(new Uri("https://" + str2));
                }
                catch (UriFormatException arg2)
                {
                    SharePointUrl.Tracer.TraceError <string, UriFormatException>(0L, "Invalid Uri: {0}, {1}", "https://" + str2, arg2);
                }
            }
            return(null);
        }