Ejemplo n.º 1
0
 /// <summary>
 /// Creates the client internal.
 /// </summary>
 /// <param name="binding">The binding.</param>
 /// <param name="endpointAddress">The endpoint address.</param>
 /// <param name="credentials">The credentials.</param>
 /// <returns></returns>
 protected virtual T CreateClientInternal(Binding binding,
                                          EndpointAddress endpointAddress,
                                          CredentialsBase credentials)
 {
     ProxyConnectionPool.EnableConnectionPool = false;
     return(GetReusableFaultUnwrappingInstance(binding, endpointAddress, credentials));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the client.
        /// </summary>
        /// <param name="binding">The binding.</param>
        /// <param name="address">The address.</param>
        /// <param name="credentials">The credentials.</param>
        /// <returns>TInterface.</returns>
        protected T GetReusableInstance(Binding binding, EndpointAddress address, CredentialsBase credentials)
        {
            binding.Upscale();
            var instance = GetReusableInstance(binding, address);

            AddWulkaCredentials(instance, credentials);
            if (GetClt(instance) != null)
            {
                var bhv = GetClt(instance).Endpoint.Behaviors.Find <ContextEndpointBehavior>();
                if (bhv == null)
                {
                    GetClt(instance).Endpoint.Behaviors.Add(new ContextEndpointBehavior());
                }
                foreach (var operation in GetClt(instance).Endpoint.Contract.Operations)
                {
                    var dcsob = operation.Behaviors.Find <DataContractSerializerOperationBehavior>();
                    if (dcsob == null)
                    {
                        operation.Behaviors.Add(new DataContractSerializerOperationBehavior(operation)
                        {
                            MaxItemsInObjectGraph = 2147483647
                        });
                    }
                    else
                    {
                        dcsob.MaxItemsInObjectGraph = 2147483647;
                    }
                }
                foreach (var key in WulkaContext.Current.Keys)
                {
                    GetClt(instance).InnerChannel.AddToContext(key, WulkaContext.Current[key]);
                }
            }
            return(instance);
        }
        public void UserNameAndPasswordCanBeSpecified()
        {
            var c = new CredentialsBase
            {
                UserName = "******",
                Password = "******",
            };

            Assert.AreEqual("root", c.UserName);
            Assert.AreEqual("s3cr3t", c.Password);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of the CredentialDetails class.
        /// </summary>
        public CredentialDetails(CredentialsBase credentialsBase, PrivacyLevel privacyLevel, EncryptedConnection encryptedConnection, ICredentialsEncryptor credentialsEncryptor = null, bool?useEndUserOAuth2Credentials = default(bool?))
            : this(privacyLevel, encryptedConnection, credentialsEncryptor, useEndUserOAuth2Credentials)
        {
            var credentials = new CredentialsRequest
            {
                CredentialData = credentialsBase.CredentialData.Select((pair) => new NameValuePair(pair.Key, pair.Value))
            };

            var credentialsJson = JsonConvert.SerializeObject(credentials);

            if (credentialsEncryptor != null)
            {
                credentialsJson = credentialsEncryptor.EncodeCredentials(credentialsJson);
            }

            Credentials    = credentialsJson;
            CredentialType = credentialsBase.CredentialType;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Adds the Wulka credentials.
 /// </summary>
 /// <param name="instance">The instance.</param>
 /// <param name="credentials">The credentials.</param>
 private void AddWulkaCredentials(T instance, CredentialsBase credentials)
 {
     if (credentials != null)
     {
         WulkaContext.Current.Clear();
         var ncr  = CredentialCache.DefaultCredentials;
         var inst = GetClt(instance);
         if (inst == null)
         {
             return;
         }
         var cr = inst.ClientCredentials;
         if (cr != null)
         {
             cr.Windows.ClientCredential = ncr.GetCredential(inst.Endpoint.Address.Uri, "Negotiate");
         }
         AddWulkaCredentialsInternal(inst, WulkaContext.Current, credentials);
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Adds the Wulka credentials internal.
        /// </summary>
        /// <param name="inst">The inst.</param>
        /// <param name="context">The p MS context.</param>
        /// <param name="credentials">The credentials.</param>
        protected virtual void AddWulkaCredentialsInternal(object inst, WulkaContext context, CredentialsBase credentials)
        {
            if (credentials != null)
            {
                switch (credentials.CredentialType)
                {
                case CredentialsTypeEnum.UserNamePassword:
                {
                    var cred = credentials as UserNamePasswordCredentials;
                    context.Add(WulkaContextKey.UserName, cred.UserName);
                    context.Add(WulkaContextKey.PasswordEnc, CryptoEngine.Encrypt(cred.Password));
                    GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new UserNamePasswordMessageInspector(cred.UserName, cred.Password)));
                    break;
                }

                case CredentialsTypeEnum.UserNameSession:
                {
                    var creds = credentials as UserNameSessionCredentials;
                    context.Add(WulkaContextKey.UserName, creds.UserName);
                    context.Add(WulkaContextKey.SessionId, creds.Session);
                    GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new UserNameSessionMessageInspector(creds.UserName, creds.Session)));
                    break;
                }

                case CredentialsTypeEnum.Extended:
                {
                    var crede = credentials as ExtendedCredentials;
                    context.Add(WulkaContextKey.UserName, crede.UserName);
                    context.Add(WulkaContextKey.SessionId, crede.Session);
                    context.Add(WulkaContextKey.ServiceCode, crede.ServiceCode);
                    GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new ExtendedMessageInspector(crede.UserName, crede.FirstName, crede.LastName, crede.Session, crede.ServiceCode)));
                    break;
                }
                }
            }
        }