예제 #1
0
 private static void CloseProxy(HPIT.EUE.SPSite.HPSiteSoapClient iProxy)
 {
     if (iProxy != null)
     {
         iProxy.Close();
         iProxy = null;
     }
 }
예제 #2
0
        private static HPIT.EUE.SPSite.HPSiteSoapClient CreateProxy(string iSiteUrl, NetworkCredential iCredential)
        {
            var mServieUrl = new Uri(iSiteUrl.TrimEnd('/') + "/_vti_bin/hp/hpsite.asmx");

            var mRemoteAddress = new System.ServiceModel.EndpointAddress(mServieUrl);
            var mHttBinding    = new System.ServiceModel.BasicHttpBinding();

            if (mServieUrl.Scheme == Uri.UriSchemeHttps)
            {
                mHttBinding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;
                ServicePointManager.ServerCertificateValidationCallback = ((sender,
                                                                            certificate, chain, sslPolicyErrors) => true);
            }

            if (mServieUrl.Scheme == Uri.UriSchemeHttp)
            {
                mHttBinding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly;
            }

            mHttBinding.SendTimeout = new TimeSpan(24, 0, 0);
            mHttBinding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Ntlm;
            mHttBinding.Security.Message.ClientCredentialType   =
                System.ServiceModel.BasicHttpMessageCredentialType.UserName;

            var mReturnProxy = new HPIT.EUE.SPSite.HPSiteSoapClient(mHttBinding, mRemoteAddress);

            if (mReturnProxy.ClientCredentials == null)
            {
                return(mReturnProxy);
            }

            mReturnProxy.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Delegation;
            mReturnProxy.ClientCredentials.Windows.ClientCredential          = iCredential;

            return(mReturnProxy);
        }