示例#1
0
        protected override void OnApplyConfiguration(Binding binding)
        {
            base.OnApplyConfiguration(binding);
            WSHttpRelayBinding allowCookies = (WSHttpRelayBinding)binding;

            allowCookies.AllowCookies = this.AllowCookies;
            this.Security.ApplyConfiguration(allowCookies.Security);
        }
示例#2
0
        protected override void InitializeFrom(Binding binding)
        {
            base.InitializeFrom(binding);
            WSHttpRelayBinding wSHttpRelayBinding = (WSHttpRelayBinding)binding;

            this.AllowCookies = wSHttpRelayBinding.AllowCookies;
            this.Security.InitializeFrom(wSHttpRelayBinding.Security);
        }
示例#3
0
        internal static void ConfigureBinding(Binding binding, bool anonymous = true)
        {
            if (binding is NetTcpRelayBinding)
            {
                NetTcpRelayBinding tcpBinding = (NetTcpRelayBinding)binding;
                tcpBinding.Security.Mode = EndToEndSecurityMode.Message;
                if (anonymous)
                {
                    tcpBinding.Security.Message.ClientCredentialType = MessageCredentialType.None;
                }
                else
                {
                    tcpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
                }

                tcpBinding.ConnectionMode          = TcpRelayConnectionMode.Hybrid;
                tcpBinding.ReliableSession.Enabled = true;

                return;
            }
            if (binding is WSHttpRelayBinding)
            {
                WSHttpRelayBinding wsBinding = (WSHttpRelayBinding)binding;
                wsBinding.Security.Mode = EndToEndSecurityMode.Message;
                if (anonymous)
                {
                    wsBinding.Security.Message.ClientCredentialType = MessageCredentialType.None;
                }
                else
                {
                    wsBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
                }
                wsBinding.ReliableSession.Enabled = true;

                return;
            }
            if (binding is NetOnewayRelayBinding)
            {
                NetOnewayRelayBinding onewayBinding = (NetOnewayRelayBinding)binding;
                onewayBinding.Security.Mode = EndToEndSecurityMode.Message;
                if (anonymous)
                {
                    onewayBinding.Security.Message.ClientCredentialType = MessageCredentialType.None;
                }
                else
                {
                    onewayBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
                }
                return;
            }
            throw new InvalidOperationException(binding.GetType() + " is unsupported");
        }