private SiteManager.SiteManagerClient GetSiteManagerClient() { BasicHttpBinding binding = new BasicHttpBinding(); if (txtWebApplicationUrl.Text.ToLower().Contains("https://")) { binding.Security.Mode = BasicHttpSecurityMode.Transport; } else { binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; } binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; EndpointAddress endPoint = new EndpointAddress(txtWebApplicationUrl.Text + "/_vti_bin/provisioning.services.sitemanager/sitemanager.svc"); //Set time outs binding.ReceiveTimeout = TimeSpan.FromMinutes(15); binding.CloseTimeout = TimeSpan.FromMinutes(15); binding.OpenTimeout = TimeSpan.FromMinutes(15); binding.SendTimeout = TimeSpan.FromMinutes(15); //Create proxy instance SiteManager.SiteManagerClient managerClient = new SiteManager.SiteManagerClient(binding, endPoint); managerClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; var impersonator = new System.Net.NetworkCredential(txtAccount.Text, txtPassword.Text, txtDomain.Text); managerClient.ClientCredentials.Windows.ClientCredential = impersonator; return managerClient; }
/// <summary> /// Does the dynamic configuration fro the WCF end point using code /// </summary> /// <returns>Needed proxy client with impersonation information.</returns> private SiteManager.SiteManagerClient GetSiteManagerClient() { BasicHttpBinding binding = new BasicHttpBinding(); if (ConfigurationManager.AppSettings["WebApplicationUrl"].Contains("https://")) { binding.Security.Mode = BasicHttpSecurityMode.Transport; } else { binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly; } binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; EndpointAddress endPoint = new EndpointAddress(ConfigurationManager.AppSettings["WebApplicationUrl"] + "/_vti_bin/provisioning.services.sitemanager/sitemanager.svc"); //Set time outs, since site collection creation could take a while. Also set on server side. binding.ReceiveTimeout = TimeSpan.FromMinutes(15); binding.CloseTimeout = TimeSpan.FromMinutes(15); binding.OpenTimeout = TimeSpan.FromMinutes(15); binding.SendTimeout = TimeSpan.FromMinutes(15); //Create proxy instance SiteManager.SiteManagerClient managerClient = new SiteManager.SiteManagerClient(binding, endPoint); managerClient.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; // Set impersonation information. This account is needed to have the web application permissions in SP side var impersonator = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["Service_UserId"], ConfigurationManager.AppSettings["Service_Pwd"], ConfigurationManager.AppSettings["Service_Domain"]); managerClient.ClientCredentials.Windows.ClientCredential = impersonator; return managerClient; }