private static ServerCommandServiceClient CreateWcfClient(LoginSettings loginSettings, Uri uri)
        {
            var binding  = GetBinding(loginSettings.IsBasicUser);
            var spn      = SpnFactory.GetSpn(uri);
            var endpoint = new EndpointAddress(uri, EndpointIdentity.CreateSpnIdentity(spn));
            var client   = new ServerCommandServiceClient(binding, endpoint);

            if (loginSettings.IsBasicUser)
            {
                client.ClientCredentials.UserName.UserName = "******" + loginSettings.NetworkCredential.UserName;
                client.ClientCredentials.UserName.Password = loginSettings.NetworkCredential.Password;

                // If it's basic user, you need to specify the certificate validation mode yourself
                client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication()
                {
                    CertificateValidationMode = X509CertificateValidationMode.None
                };
            }
            else
            {
                client.ClientCredentials.Windows.ClientCredential = LoginSettingsCache.GetNetworkCredential(EnvironmentManager.Instance.MasterSite.ServerId);
            }

            return(client);
        }