Beispiel #1
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");
        }
        protected override void InitializeFrom(Binding binding)
        {
            base.InitializeFrom(binding);
            NetOnewayRelayBinding netOnewayRelayBinding = (NetOnewayRelayBinding)binding;

            this.MaxBufferPoolSize      = netOnewayRelayBinding.MaxBufferPoolSize;
            this.MaxBufferSize          = netOnewayRelayBinding.MaxBufferSize;
            this.MaxConnections         = netOnewayRelayBinding.MaxConnections;
            this.MaxReceivedMessageSize = netOnewayRelayBinding.MaxReceivedMessageSize;
            this.ListenBacklog          = netOnewayRelayBinding.ListenBacklog;
            this.Security.InitializeFrom(netOnewayRelayBinding.Security);
            this.ReaderQuotas.InitializeFrom(netOnewayRelayBinding.ReaderQuotas);
        }
        protected override void OnApplyConfiguration(Binding binding)
        {
            NetOnewayRelayBinding listenBacklog = (NetOnewayRelayBinding)binding;

            listenBacklog.ListenBacklog     = this.ListenBacklog;
            listenBacklog.MaxBufferPoolSize = this.MaxBufferPoolSize;
            if (base.ElementInformation.Properties["maxBufferSize"].ValueOrigin != PropertyValueOrigin.Default)
            {
                listenBacklog.MaxBufferSize = this.MaxBufferSize;
            }
            listenBacklog.MaxConnections         = this.MaxConnections;
            listenBacklog.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
            this.Security.ApplyConfiguration(listenBacklog.Security);
            this.ReaderQuotas.ApplyConfiguration(listenBacklog.ReaderQuotas);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            try
            {
                //string serviceBusSolutionName = ServiceBusHelper.GetServiceBusSolutionName();
                //Console.Write("Your Solution Password: "******"owner";
                //string issuerKey = "wJBJaobUmarWn6kqv7QpaaRh3ttNVr3w1OjiotVEOL4=";
                //NetOnewayEnergyServiceOperationsServer server = new NetOnewayEnergyServiceOperationsServer(
                //    serviceBusSolutionName,
                //    issuerName,
                //    issuerKey,
                //    "OnewayEnergyServiceOperations",
                //   Microsoft.ServiceBus.ConnectivityMode.AutoDetect,
                //    typeof(OnewayEnergyServiceOperations),
                //    true);

                string serviceNamespaceDomain = ServiceBusHelper.GetServiceBusSolutionName();
                Uri    address = ServiceBusEnvironment.CreateServiceUri("sb", serviceNamespaceDomain, "OnewayEnergyServiceOperations");

                ServiceHost host = new ServiceHost(typeof(OnewayEnergyServiceOperations), address);
                host.Open();


                Console.WriteLine("ServiceUri:" + address.ToString());

                Console.WriteLine("Service registered for public discovery.");
                NetOnewayRelayBinding binding = host.Description.Endpoints[0].Binding as NetOnewayRelayBinding;
                if (binding != null)
                {
                    Console.WriteLine("Scheme:" + binding.Scheme);
                    Console.WriteLine("Security Mode:" + binding.Security.Mode);
                    Console.WriteLine("Security RelayAuthType:" + binding.Security.RelayClientAuthenticationType.ToString());
                    Console.WriteLine("Security Transport.ProtectionLevel:" + binding.Security.Transport.ProtectionLevel.ToString());
                }
                Console.WriteLine("Press [Enter] to exit");
                Console.ReadLine();

                host.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Configures default settings for the specified <see cref="Microsoft.ServiceBus.NetOnewayRelayBinding"/> binding.
        /// </summary>
        /// <param name="eventRelayBinding">The Service Bus transport binding to be configured.</param>
        public static void ConfigureDefaults(NetOnewayRelayBinding eventRelayBinding)
        {
            Guard.ArgumentNotNull(eventRelayBinding, "eventRelayBinding");

            eventRelayBinding.OpenTimeout    = TimeSpan.FromSeconds(DefaultOpenTimeoutSeconds);
            eventRelayBinding.CloseTimeout   = TimeSpan.FromSeconds(DefaultCloseTimeoutSeconds);
            eventRelayBinding.ReceiveTimeout = TimeSpan.FromSeconds(DefaultReceiveTimeoutSeconds);
            eventRelayBinding.SendTimeout    = TimeSpan.FromSeconds(DefaultSendTimeoutSeconds);

            eventRelayBinding.MaxReceivedMessageSize = DefaultMaxReceivedMessageSize;
            eventRelayBinding.MaxBufferPoolSize      = DefaultMaxBufferPoolSize;
            eventRelayBinding.MaxBufferSize          = DefaultMaxBufferSize;

            eventRelayBinding.ReaderQuotas.MaxArrayLength         = DefaultReaderQuotasMaxArrayLength;
            eventRelayBinding.ReaderQuotas.MaxBytesPerRead        = DefaultReaderQuotasMaxBytesPerRead;
            eventRelayBinding.ReaderQuotas.MaxDepth               = DefaultReaderQuotasMaxDepth;
            eventRelayBinding.ReaderQuotas.MaxNameTableCharCount  = DefaultReaderQuotasMaxNameTableCharCount;
            eventRelayBinding.ReaderQuotas.MaxStringContentLength = DefaultReaderQuotasMaxStringContentLength;
        }
Beispiel #6
0
        string[] DiscoverServiceBusMexAddresses(string serviceNamespace)
        {
            NetOnewayRelayBinding binding = new NetOnewayRelayBinding();

            if (m_DisoveryPaths.ContainsKey(serviceNamespace) == false)
            {
                m_DisoveryPaths[serviceNamespace] = DiscoverableServiceHost.DiscoveryPath;
            }
            EndpointAddress address = new EndpointAddress(ServiceBusEnvironment.CreateServiceUri("sb", serviceNamespace, m_DisoveryPaths[serviceNamespace]));

            ServiceBusDiscoveryClient discoveryClient = new ServiceBusDiscoveryClient(binding, address);
            IServiceBusProperties     properties      = discoveryClient as IServiceBusProperties;

            properties.Credential = m_NamespaceCredentials[serviceNamespace];

            FindResponse discovered = discoveryClient.Find(FindCriteria.CreateMetadataExchangeEndpointCriteria());

            return(discovered.Endpoints.Select(mexEndpoint => mexEndpoint.Address.Uri.AbsoluteUri).ToArray());
        }
Beispiel #7
0
        public EventRelayClientBase(string namespaceBaseAddress, NetOnewayRelayBinding binding)
        {
            State = CommunicationState.Faulted;

            Debug.Assert(namespaceBaseAddress.Contains("servicebus.windows.net"));
            if (namespaceBaseAddress.EndsWith("/") == false)
            {
                namespaceBaseAddress += "/";
            }
            BaseAddress = namespaceBaseAddress;

            Binding = binding;

            Anonymous = true;

            SetServiceCertificate("");

            State = CommunicationState.Created;
        }
        static protected Binding GetBindingFromAddress(string address)
        {
            if (address.StartsWith("http:") || address.StartsWith("https:"))
            {
                WSHttpBinding binding = new WSHttpBinding();
                binding.ReliableSession.Enabled = true;
                binding.TransactionFlow         = true;
                return(binding);
            }
            if (address.StartsWith("net.tcp:"))
            {
                NetTcpBinding binding = new NetTcpBinding();
                binding.ReliableSession.Enabled = true;
                binding.TransactionFlow         = true;
                return(binding);
            }
            if (address.StartsWith("net.pipe:"))
            {
                NetNamedPipeBinding binding = new NetNamedPipeBinding();
                binding.TransactionFlow = true;
                return(binding);
            }
            if (address.StartsWith("net.msmq:"))
            {
                NetMsmqBinding binding = new NetMsmqBinding();
                binding.Security.Mode = NetMsmqSecurityMode.None;
                return(binding);
            }
            if (address.StartsWith("sb:"))
            {
                NetOnewayRelayBinding binding = new NetOnewayRelayBinding();
                return(binding);
            }

            Debug.Assert(false, "Unsupported binding specified");
            return(null);
        }
 public void SetBinding(string bindingConfigName)
 {
     RelayBinding = new NetEventRelayBinding(bindingConfigName);
 }
 public void SetBinding(string bindingConfigName)
 {
    RelayBinding = new NetEventRelayBinding(bindingConfigName);
 }
Beispiel #11
0
 public OneWayClientBase(NetOnewayRelayBinding binding, EndpointAddress remoteAddress, string username, string password) : base(binding, remoteAddress, username, password)
 {
 }
Beispiel #12
0
        public override void SetBinding(NetOnewayRelayBinding binding)
        {
            Debug.Assert(binding is NetEventRelayBinding);

            RelayBinding = binding;
        }
      string[] DiscoverServiceBusMexAddresses(string serviceNamespace)
      {
         NetOnewayRelayBinding binding = new NetOnewayRelayBinding();
         if(m_DisoveryPaths.ContainsKey(serviceNamespace) == false)
         {
            m_DisoveryPaths[serviceNamespace] = DiscoverableServiceHost.DiscoveryPath;
         }
         EndpointAddress address = new EndpointAddress(ServiceBusEnvironment.CreateServiceUri("sb",serviceNamespace,m_DisoveryPaths[serviceNamespace]));

         ServiceBusDiscoveryClient discoveryClient = new ServiceBusDiscoveryClient(binding,address);
         TransportClientEndpointBehavior creds = new TransportClientEndpointBehavior(m_NamespaceCredentials[serviceNamespace]);

         IServiceBusProperties properties = discoveryClient as IServiceBusProperties;
         properties.Credential = creds;

         FindResponse discovered = discoveryClient.Find(FindCriteria.CreateMetadataExchangeEndpointCriteria());

         return discovered.Endpoints.Select(mexEndpoint => mexEndpoint.Address.Uri.AbsoluteUri).ToArray();
      }
Beispiel #14
0
 public abstract void SetBinding(NetOnewayRelayBinding binding);
Beispiel #15
0
 public EventRelayClientBase(string namespaceBaseAddress, NetOnewayRelayBinding binding, string username, string password) : this(namespaceBaseAddress, binding)
 {
     ServiceUsername = username;
     ServicePassword = password;
     Anonymous       = false;
 }
Beispiel #16
0
 public ServiceBusEventsClientBase(string namespaceBaseAddress, NetOnewayRelayBinding binding, string username, string password) : base(binding, ToEventAddress(namespaceBaseAddress), username, password)
 {
 }
Beispiel #17
0
 public ServiceBusDiscoveryClient(NetOnewayRelayBinding binding, EndpointAddress address) : base(binding, address)
 {
     Initialize();
 }
Beispiel #18
0
 public ServiceBusEventsClientBase(string namespaceBaseAddress, NetOnewayRelayBinding binding) : base(binding, ToEventAddress(namespaceBaseAddress))
 {
 }
Beispiel #19
0
 public OneWayClientBase(NetOnewayRelayBinding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress)
 {
 }
        void ConfigureSecurityMode(Binding binding)
        {
            SecurityModeEx securityMode = SecurityModeEx.None;

            bool enabled = false;

            if (binding is NetTcpBinding)
            {
                NetTcpBinding tcpBinding = binding as NetTcpBinding;
                switch (tcpBinding.Security.Mode)
                {
                case SecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case SecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case SecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case SecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is NetNamedPipeBinding)
            {
                NetNamedPipeBinding pipeBinding = binding as NetNamedPipeBinding;
                switch (pipeBinding.Security.Mode)
                {
                case NetNamedPipeSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case NetNamedPipeSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is NetMsmqBinding)
            {
                NetMsmqBinding msmqBinding = binding as NetMsmqBinding;
                switch (msmqBinding.Security.Mode)
                {
                case NetMsmqSecurityMode.Both:
                {
                    securityMode = SecurityModeEx.Both;
                    break;
                }

                case NetMsmqSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case NetMsmqSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case NetMsmqSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is BasicHttpBinding)
            {
                BasicHttpBinding basicBinding = binding as BasicHttpBinding;
                switch (basicBinding.Security.Mode)
                {
                case BasicHttpSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case BasicHttpSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case BasicHttpSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case BasicHttpSecurityMode.TransportCredentialOnly:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case BasicHttpSecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is WSHttpBinding)
            {
                WSHttpBinding wsBinding = binding as WSHttpBinding;
                switch (wsBinding.Security.Mode)
                {
                case SecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case SecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case SecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case SecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }

            if (binding is WSDualHttpBinding)
            {
                WSDualHttpBinding wsDualBinding = binding as WSDualHttpBinding;
                switch (wsDualBinding.Security.Mode)
                {
                case WSDualHttpSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case WSDualHttpSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is NetPeerTcpBinding)
            {
                NetPeerTcpBinding peerBinding = binding as NetPeerTcpBinding;
                switch (peerBinding.Security.Mode)
                {
                case SecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case SecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case SecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case SecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }
                }
                enabled = true;
            }
            if (binding is WSFederationHttpBinding)
            {
                WSFederationHttpBinding federatedBinding = binding as WSFederationHttpBinding;
                switch (federatedBinding.Security.Mode)
                {
                case WSFederationHttpSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case WSFederationHttpSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case WSFederationHttpSecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }

            if (binding is NetTcpRelayBinding)
            {
                NetTcpRelayBinding tcpRelayBinding = binding as NetTcpRelayBinding;
                switch (tcpRelayBinding.Security.Mode)
                {
                case EndToEndSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case EndToEndSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case EndToEndSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case EndToEndSecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }

            if (binding is BasicHttpRelayBinding)
            {
                BasicHttpRelayBinding basicRelayBinding = binding as BasicHttpRelayBinding;
                switch (basicRelayBinding.Security.Mode)
                {
                case EndToEndBasicHttpSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case EndToEndBasicHttpSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case EndToEndBasicHttpSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case EndToEndBasicHttpSecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }

            if (binding is NetOnewayRelayBinding)
            {
                NetOnewayRelayBinding onewayRelayBinding = binding as NetOnewayRelayBinding;
                switch (onewayRelayBinding.Security.Mode)
                {
                case EndToEndSecurityMode.Message:
                {
                    securityMode = SecurityModeEx.Message;
                    break;
                }

                case EndToEndSecurityMode.None:
                {
                    securityMode = SecurityModeEx.None;
                    break;
                }

                case EndToEndSecurityMode.Transport:
                {
                    securityMode = SecurityModeEx.Transport;
                    break;
                }

                case EndToEndSecurityMode.TransportWithMessageCredential:
                {
                    securityMode = SecurityModeEx.Mixed;
                    break;
                }
                }
                enabled = true;
            }

            if (binding is CustomBinding)
            {
                enabled = false;
            }

            m_NoneRadioButton.Checked      = securityMode == SecurityModeEx.None;
            m_TransportRadioButton.Checked = securityMode == SecurityModeEx.Transport;
            m_MessageRadioButton.Checked   = securityMode == SecurityModeEx.Message;
            m_MixedRadioButton.Checked     = securityMode == SecurityModeEx.Mixed;
            m_BothRadioButton.Checked      = securityMode == SecurityModeEx.Both;

            m_NoneRadioButton.Enabled      = enabled;
            m_TransportRadioButton.Enabled = enabled;
            m_MessageRadioButton.Enabled   = enabled;
            m_MixedRadioButton.Enabled     = enabled;
            m_BothRadioButton.Enabled      = enabled;
        }