private static bool GetSecurityModeFromTransport(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
 {
     mode = UnifiedSecurityMode.None;
     if (http == null)
     {
         return false;
     }
     if (http is HttpsTransportBindingElement)
     {
         mode = UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Transport;
         BasicHttpSecurity.EnableTransportSecurity((HttpsTransportBindingElement) http, transportSecurity);
     }
     else if (HttpTransportSecurity.IsDisabledTransportAuthentication(http))
     {
         mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
     }
     else
     {
         if (!BasicHttpSecurity.IsEnabledTransportAuthentication(http, transportSecurity))
         {
             return false;
         }
         mode = UnifiedSecurityMode.TransportCredentialOnly;
     }
     return true;
 }
        internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
        {
            security = null;
            BasicHttpMessageSecurity messageSecurity = null;

            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential;
                bool isSecureTransportMode;
                if (!BasicHttpMessageSecurity.TryCreate(sbe, out messageSecurity, out isSecureTransportMode))
                {
                    return(false);
                }
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);
            }
            BasicHttpSecurityMode basicHttpSecurityMode = BasicHttpSecurityModeHelper.ToSecurityMode(mode);

            Fx.Assert(BasicHttpSecurityModeHelper.IsDefined(basicHttpSecurityMode), string.Format("Invalid BasicHttpSecurityMode value: {0}.", basicHttpSecurityMode.ToString()));
            security = new BasicHttpSecurity(basicHttpSecurityMode, transportSecurity, messageSecurity);

            return(SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(), sbe));
        }
Exemple #3
0
 private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSession, out WSHttpSecurity security)
 {
     if (!WSHttpSecurity.TryCreate(sbe, mode, transportSecurity, isReliableSession, out security))
     {
         return(false);
     }
     return(SecurityElementBase.AreBindingsMatching(security.CreateMessageSecurity(isReliableSession, WS2007MessageSecurityVersion), sbe));
 }
 // This is effectively just a copy of WSHttpBinding.TryCreateSecurity(), only it passes the 2007 security version
 private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSession, out WSHttpSecurity security)
 {
     if (!WSHttpSecurity.TryCreate(sbe, mode, transportSecurity, isReliableSession, out security))
     {
         return(false);
     }
     // the last check: make sure that security binding element match the incoming security
     return(System.ServiceModel.Configuration.SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(isReliableSession, s_WS2007MessageSecurityVersion), sbe));
 }
Exemple #5
0
 private static bool IsValidTransport(MsmqTransportBindingElement msmq, out UnifiedSecurityMode mode)
 {
     mode = 0;
     if (msmq == null)
     {
         return(false);
     }
     return(NetMsmqSecurity.IsConfiguredTransportSecurity(msmq, out mode));
 }
 internal static BasicHttpsSecurityMode ToSecurityMode(UnifiedSecurityMode value)
 {
     switch (value)
     {
         case UnifiedSecurityMode.Transport:
             return BasicHttpsSecurityMode.Transport;
         case UnifiedSecurityMode.TransportWithMessageCredential:
             return BasicHttpsSecurityMode.TransportWithMessageCredential;
         default:
             return (BasicHttpsSecurityMode)value;
     }
 }
        private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, bool isReliableSession, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security)
        {
            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
            }
            SecurityMode mode2 = SecurityModeHelper.ToSecurityMode(mode);

            return(NetTcpSecurity.TryCreate(sbe, mode2, isReliableSession, transportSecurity, tcpTransportSecurity, out security));
        }
Exemple #8
0
        private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, out NetMsmqSecurity security)
        {
            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.Both | UnifiedSecurityMode.Message;
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.Both | UnifiedSecurityMode.Message);
            }
            NetMsmqSecurityMode mode2 = NetMsmqSecurityModeHelper.ToSecurityMode(mode);

            return(NetMsmqSecurity.TryCreate(sbe, mode2, out security));
        }
        internal static BasicHttpsSecurityMode ToSecurityMode(UnifiedSecurityMode value)
        {
            switch (value)
            {
            case UnifiedSecurityMode.Transport:
                return(BasicHttpsSecurityMode.Transport);

            case UnifiedSecurityMode.TransportWithMessageCredential:
                return(BasicHttpsSecurityMode.TransportWithMessageCredential);

            default:
                return((BasicHttpsSecurityMode)value);
            }
        }
 internal static NetMsmqSecurityMode ToSecurityMode(UnifiedSecurityMode value)
 {
     switch (value)
     {
         case UnifiedSecurityMode.None:
             return NetMsmqSecurityMode.None;
         case UnifiedSecurityMode.Transport:
             return NetMsmqSecurityMode.Transport;
         case UnifiedSecurityMode.Message:
             return NetMsmqSecurityMode.Message;
         case UnifiedSecurityMode.Both:
             return NetMsmqSecurityMode.Both;
         default:
             return (NetMsmqSecurityMode)value;
     }
 }
 public static SecurityMode ToSecurityMode(UnifiedSecurityMode value)
 {
     switch (value)
     {
         case UnifiedSecurityMode.None:
             return SecurityMode.None;
         case UnifiedSecurityMode.Transport:
             return SecurityMode.Transport;
         case UnifiedSecurityMode.Message:
             return SecurityMode.Message;
         case UnifiedSecurityMode.TransportWithMessageCredential:
             return SecurityMode.TransportWithMessageCredential;
         default:
             return (SecurityMode)value;
     }
 }
 internal static bool IsConfiguredTransportSecurity(MsmqTransportBindingElement msmq, out UnifiedSecurityMode mode)
 {
     if (msmq == null)
     {
         mode = UnifiedSecurityMode.None;
         return false;
     }
     if (msmq.MsmqTransportSecurity.Enabled)
     {
         mode = UnifiedSecurityMode.Both | UnifiedSecurityMode.Transport;
     }
     else
     {
         mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
     }
     return true;
 }
 internal static bool GetSecurityModeFromTransport(TransportBindingElement transport, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
 {
     mode = UnifiedSecurityMode.None;
     if (transport is HttpsTransportBindingElement)
     {
         mode = UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Transport;
         WSHttpSecurity.ApplyTransportSecurity((HttpsTransportBindingElement) transport, transportSecurity);
     }
     else if (transport is HttpTransportBindingElement)
     {
         mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
     }
     else
     {
         return false;
     }
     return true;
 }
        internal static SecurityMode ToSecurityMode(UnifiedSecurityMode value)
        {
            switch (value)
            {
            case UnifiedSecurityMode.None:
                return(SecurityMode.None);

            case UnifiedSecurityMode.Transport:
                return(SecurityMode.Transport);

            case UnifiedSecurityMode.Message:
                return(SecurityMode.Message);

            case UnifiedSecurityMode.TransportWithMessageCredential:
                return(SecurityMode.TransportWithMessageCredential);
            }
            return((SecurityMode)value);
        }
        internal static NetMsmqSecurityMode ToSecurityMode(UnifiedSecurityMode value)
        {
            switch (value)
            {
            case UnifiedSecurityMode.None:
                return(NetMsmqSecurityMode.None);

            case UnifiedSecurityMode.Transport:
                return(NetMsmqSecurityMode.Transport);

            case UnifiedSecurityMode.Message:
                return(NetMsmqSecurityMode.Message);

            case UnifiedSecurityMode.Both:
                return(NetMsmqSecurityMode.Both);
            }
            return((NetMsmqSecurityMode)value);
        }
        internal static BasicHttpSecurityMode ToSecurityMode(UnifiedSecurityMode value)
        {
            switch (value)
            {
                case UnifiedSecurityMode.None:
                    return BasicHttpSecurityMode.None;

                case UnifiedSecurityMode.Transport:
                    return BasicHttpSecurityMode.Transport;

                case UnifiedSecurityMode.Message:
                    return BasicHttpSecurityMode.Message;

                case UnifiedSecurityMode.TransportWithMessageCredential:
                    return BasicHttpSecurityMode.TransportWithMessageCredential;

                case UnifiedSecurityMode.TransportCredentialOnly:
                    return BasicHttpSecurityMode.TransportCredentialOnly;
            }
            return (BasicHttpSecurityMode) value;
        }
Exemple #17
0
        static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, out NetMsmqSecurity security)
        {
            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.Both;
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.Both);
            }

            NetMsmqSecurityMode netMsmqSecurityMode = NetMsmqSecurityModeHelper.ToSecurityMode(mode);

            Fx.Assert(NetMsmqSecurityModeHelper.IsDefined(netMsmqSecurityMode), string.Format("Invalid NetMsmqSecurityMode value: {0}.", netMsmqSecurityMode.ToString()));

            if (NetMsmqSecurity.TryCreate(sbe, netMsmqSecurityMode, out security))
            {
                return(true);
            }
            return(false);
        }
Exemple #18
0
        private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, bool isReliableSession, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security)
        {
            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential;
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);
            }

            SecurityMode securityMode = SecurityModeHelper.ToSecurityMode(mode);

            // TODO: Fx.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", securityMode.ToString()));

            if (NetTcpSecurity.TryCreate(sbe, securityMode, isReliableSession, transportSecurity, tcpTransportSecurity, out security))
            {
                return(true);
            }

            return(false);
        }
        internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
        {
            security = null;
            BasicHttpMessageSecurity security2 = null;

            if (sbe != null)
            {
                bool flag;
                mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
                if (!BasicHttpMessageSecurity.TryCreate(sbe, out security2, out flag))
                {
                    return(false);
                }
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
            }
            BasicHttpSecurityMode mode2 = BasicHttpSecurityModeHelper.ToSecurityMode(mode);

            security = new BasicHttpSecurity(mode2, transportSecurity, security2);
            return(SecurityElementBase.AreBindingsMatching(security.CreateMessageSecurity(), sbe));
        }
Exemple #20
0
        internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security)
        {
            security = null;
            NonDualMessageSecurityOverHttp messageSecurity = null;
            SecurityMode none = SecurityMode.None;

            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
                none  = SecurityModeHelper.ToSecurityMode(mode);
                if (!MessageSecurityOverHttp.TryCreate <NonDualMessageSecurityOverHttp>(sbe, none == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity))
                {
                    return(false);
                }
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
                none  = SecurityModeHelper.ToSecurityMode(mode);
            }
            security = new WSHttpSecurity(none, transportSecurity, messageSecurity);
            return(true);
        }
        internal static EndToEndBasicHttpSecurityMode ToEndToEndBasicHttpSecurityMode(UnifiedSecurityMode value)
        {
            UnifiedSecurityMode unifiedSecurityMode = value;

            if (unifiedSecurityMode > UnifiedSecurityMode.Transport)
            {
                if (unifiedSecurityMode == UnifiedSecurityMode.Message)
                {
                    return(EndToEndBasicHttpSecurityMode.Message);
                }
                if (unifiedSecurityMode == UnifiedSecurityMode.TransportWithMessageCredential)
                {
                    return(EndToEndBasicHttpSecurityMode.TransportWithMessageCredential);
                }
            }
            else if (unifiedSecurityMode != UnifiedSecurityMode.None)
            {
                if (unifiedSecurityMode == UnifiedSecurityMode.Transport)
                {
                    return(EndToEndBasicHttpSecurityMode.Transport);
                }
            }
            return(EndToEndBasicHttpSecurityMode.None);
        }
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            NetTcpSecurity security2;

            binding = null;
            if (elements.Count > 6)
            {
                return(false);
            }
            TcpTransportBindingElement          transport = null;
            BinaryMessageEncodingBindingElement encoding  = null;
            TransactionFlowBindingElement       context   = null;
            ReliableSessionBindingElement       session   = null;
            SecurityBindingElement sbe      = null;
            BindingElement         element6 = null;

            foreach (BindingElement element7 in elements)
            {
                if (element7 is SecurityBindingElement)
                {
                    sbe = element7 as SecurityBindingElement;
                }
                else if (element7 is TransportBindingElement)
                {
                    transport = element7 as TcpTransportBindingElement;
                }
                else if (element7 is MessageEncodingBindingElement)
                {
                    encoding = element7 as BinaryMessageEncodingBindingElement;
                }
                else if (element7 is TransactionFlowBindingElement)
                {
                    context = element7 as TransactionFlowBindingElement;
                }
                else if (element7 is ReliableSessionBindingElement)
                {
                    session = element7 as ReliableSessionBindingElement;
                }
                else
                {
                    if (element6 != null)
                    {
                        return(false);
                    }
                    element6 = element7;
                }
            }
            if (transport == null)
            {
                return(false);
            }
            if (encoding == null)
            {
                return(false);
            }
            if (context == null)
            {
                context = GetDefaultTransactionFlowBindingElement();
            }
            TcpTransportSecurity tcpTransportSecurity      = new TcpTransportSecurity();
            UnifiedSecurityMode  modeFromTransportSecurity = GetModeFromTransportSecurity(element6);

            if (!TryCreateSecurity(sbe, modeFromTransportSecurity, session != null, element6, tcpTransportSecurity, out security2))
            {
                return(false);
            }
            if (!SetTransportSecurity(element6, security2.Mode, tcpTransportSecurity))
            {
                return(false);
            }
            NetTcpBinding binding2 = new NetTcpBinding(transport, encoding, context, session, security2);

            if (!binding2.IsBindingElementsMatch(transport, encoding, context, session))
            {
                return(false);
            }
            binding = binding2;
            return(true);
        }
        static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, out NetMsmqSecurity security)
        {
            if (sbe != null)
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.Both;
            else
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.Both);

            NetMsmqSecurityMode netMsmqSecurityMode = NetMsmqSecurityModeHelper.ToSecurityMode(mode);
            Fx.Assert(NetMsmqSecurityModeHelper.IsDefined(netMsmqSecurityMode), string.Format("Invalid NetMsmqSecurityMode value: {0}.", netMsmqSecurityMode.ToString()));

            if (NetMsmqSecurity.TryCreate(sbe, netMsmqSecurityMode, out security))
            {
                return true;
            }
            return false;
        }
 internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security)
 {
     security = null;
     NonDualMessageSecurityOverHttp messageSecurity = null;
     SecurityMode none = SecurityMode.None;
     if (sbe != null)
     {
         mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
         none = SecurityModeHelper.ToSecurityMode(mode);
         if (!MessageSecurityOverHttp.TryCreate<NonDualMessageSecurityOverHttp>(sbe, none == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity))
         {
             return false;
         }
     }
     else
     {
         mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
         none = SecurityModeHelper.ToSecurityMode(mode);
     }
     security = new WSHttpSecurity(none, transportSecurity, messageSecurity);
     return true;
 }
 private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, bool isReliableSession, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security)
 {
     if (sbe != null)
     {
         mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
     }
     else
     {
         mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
     }
     SecurityMode mode2 = SecurityModeHelper.ToSecurityMode(mode);
     return NetTcpSecurity.TryCreate(sbe, mode2, isReliableSession, transportSecurity, tcpTransportSecurity, out security);
 }
Exemple #26
0
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            binding = null;
            if (elements.Count > 6)
            {
                return(false);
            }

            // collect all binding elements
            TcpTransportBindingElement          transport = null;
            BinaryMessageEncodingBindingElement encoding  = null;
            TransactionFlowBindingElement       context   = null;
            ReliableSessionBindingElement       session   = null;
            SecurityBindingElement wsSecurity             = null;
            BindingElement         transportSecurity      = null;

            foreach (BindingElement element in elements)
            {
                if (element is SecurityBindingElement)
                {
                    wsSecurity = element as SecurityBindingElement;
                }
                else if (element is TransportBindingElement)
                {
                    transport = element as TcpTransportBindingElement;
                }
                else if (element is MessageEncodingBindingElement)
                {
                    encoding = element as BinaryMessageEncodingBindingElement;
                }
                else if (element is TransactionFlowBindingElement)
                {
                    context = element as TransactionFlowBindingElement;
                }
                else if (element is ReliableSessionBindingElement)
                {
                    session = element as ReliableSessionBindingElement;
                }
                else
                {
                    if (transportSecurity != null)
                    {
                        return(false);
                    }
                    transportSecurity = element;
                }
            }

            if (transport == null)
            {
                return(false);
            }
            if (encoding == null)
            {
                return(false);
            }
            if (context == null)
            {
                context = GetDefaultTransactionFlowBindingElement();
            }

            TcpTransportSecurity tcpTransportSecurity = new TcpTransportSecurity();
            UnifiedSecurityMode  mode = GetModeFromTransportSecurity(transportSecurity);

            NetTcpSecurity security;

            if (!TryCreateSecurity(wsSecurity, mode, session != null, transportSecurity, tcpTransportSecurity, out security))
            {
                return(false);
            }

            if (!SetTransportSecurity(transportSecurity, security.Mode, tcpTransportSecurity))
            {
                return(false);
            }

            NetTcpBinding netTcpBinding = new NetTcpBinding(transport, encoding, context, session, security);

            if (!netTcpBinding.IsBindingElementsMatch(transport, encoding, context, session))
            {
                return(false);
            }

            binding = netTcpBinding;
            return(true);
        }
Exemple #27
0
 private static bool GetSecurityModeFromTransport(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
 {
     mode = UnifiedSecurityMode.None;
     if (http == null)
     {
         return(false);
     }
     if (http is HttpsTransportBindingElement)
     {
         mode = UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Transport;
         BasicHttpSecurity.EnableTransportSecurity((HttpsTransportBindingElement)http, transportSecurity);
     }
     else if (HttpTransportSecurity.IsDisabledTransportAuthentication(http))
     {
         mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
     }
     else
     {
         if (!BasicHttpSecurity.IsEnabledTransportAuthentication(http, transportSecurity))
         {
             return(false);
         }
         mode = UnifiedSecurityMode.TransportCredentialOnly;
     }
     return(true);
 }
 private static bool IsValidTransport(MsmqTransportBindingElement msmq, out UnifiedSecurityMode mode)
 {
     mode = 0;
     if (msmq == null)
     {
         return false;
     }
     return NetMsmqSecurity.IsConfiguredTransportSecurity(msmq, out mode);
 }
Exemple #29
0
 internal static bool TryCreateSecurity(SecurityBindingElement securityElement, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
 {
     return BasicHttpSecurity.TryCreate(securityElement, mode, transportSecurity, out security);
 }
Exemple #30
0
 internal static bool TryCreateSecurity(SecurityBindingElement securityElement, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
 {
     return(BasicHttpSecurity.TryCreate(securityElement, mode, transportSecurity, out security));
 }
Exemple #31
0
        internal static bool TryCreate(SecurityBindingElement sbe, Microsoft.ServiceBus.RelayClientAuthenticationType relayClientAuthenticationType, UnifiedSecurityMode mode, HttpRelayTransportSecurity transportSecurity, out BasicHttpRelaySecurity security)
        {
            bool flag;

            security = null;
            BasicHttpRelayMessageSecurity basicHttpRelayMessageSecurity = null;

            if (sbe == null)
            {
                mode = mode & (UnifiedSecurityMode.None | UnifiedSecurityMode.Transport | UnifiedSecurityMode.Both);
            }
            else
            {
                mode = mode & (UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);
                if (!BasicHttpRelayMessageSecurity.TryCreate(sbe, out basicHttpRelayMessageSecurity, out flag))
                {
                    return(false);
                }
            }
            EndToEndBasicHttpSecurityMode endToEndBasicHttpSecurityMode = EndToEndBasicHttpSecurityModeHelper.ToEndToEndBasicHttpSecurityMode(mode);
            bool        flag1            = EndToEndBasicHttpSecurityModeHelper.IsDefined(endToEndBasicHttpSecurityMode);
            CultureInfo invariantCulture = CultureInfo.InvariantCulture;

            object[] str = new object[] { endToEndBasicHttpSecurityMode.ToString() };
            DiagnosticUtility.DebugAssert(flag1, string.Format(invariantCulture, "Invalid BasicHttpSecurityMode value: {0}.", str));
            security = new BasicHttpRelaySecurity(endToEndBasicHttpSecurityMode, relayClientAuthenticationType, transportSecurity, basicHttpRelayMessageSecurity);
            if (sbe == null)
            {
                return(true);
            }
            Type type = typeof(SecurityElementBase);

            object[] objArray = new object[] { security.CreateMessageSecurity(), sbe };
            return((bool)InvokeHelper.InvokeStaticMethod(type, "AreBindingsMatching", objArray));
        }
Exemple #32
0
 internal static bool GetSecurityModeFromTransport(TransportBindingElement transport, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
 {
     mode = UnifiedSecurityMode.None;
     if (transport is HttpsTransportBindingElement)
     {
         mode = UnifiedSecurityMode.Transport | UnifiedSecurityMode.TransportWithMessageCredential;
         WSHttpSecurity.ApplyTransportSecurity((HttpsTransportBindingElement)transport, transportSecurity);
     }
     else if (transport is HttpTransportBindingElement)
     {
         mode = UnifiedSecurityMode.None | UnifiedSecurityMode.Message;
     }
     else
     {
         return(false);
     }
     return(true);
 }
 internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security)
 {
     security = null;
     NonDualMessageSecurityOverHttp messageSecurity = null;
     SecurityMode securityMode = SecurityMode.None;
     if (sbe != null)
     {
         mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential;
         securityMode = SecurityModeHelper.ToSecurityMode(mode);
         Fx.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", mode.ToString()));
         if (!MessageSecurityOverHttp.TryCreate(sbe, securityMode == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity))
         {
             return false;
         }
     }
     else
     {
         mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);
         securityMode = SecurityModeHelper.ToSecurityMode(mode);
     }
     Fx.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", securityMode.ToString()));
     security = new WSHttpSecurity(securityMode, transportSecurity, messageSecurity);
     return true;
 }
 private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSession, out WSHttpSecurity security)
 {
     if (!WSHttpSecurity.TryCreate(sbe, mode, transportSecurity, isReliableSession, out security))
     {
         return false;
     }
     return SecurityElementBase.AreBindingsMatching(security.CreateMessageSecurity(isReliableSession, WS2007MessageSecurityVersion), sbe);
 }
Exemple #35
0
 internal static bool IsConfiguredTransportSecurity(NetOnewayRelayBindingElement oneway, out UnifiedSecurityMode mode)
 {
     if (oneway == null)
     {
         mode = UnifiedSecurityMode.None;
         return(false);
     }
     if (oneway.Security.Mode == EndToEndSecurityMode.Transport || oneway.Security.Mode == EndToEndSecurityMode.TransportWithMessageCredential)
     {
         mode = UnifiedSecurityMode.Transport | UnifiedSecurityMode.TransportWithMessageCredential;
     }
     else
     {
         mode = UnifiedSecurityMode.None | UnifiedSecurityMode.Message;
     }
     return(true);
 }
        internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
        {
            security = null;
            BasicHttpMessageSecurity messageSecurity = null;
            if (sbe != null)
            {
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential;
                bool isSecureTransportMode;
                if (!BasicHttpMessageSecurity.TryCreate(sbe, out messageSecurity, out isSecureTransportMode))
                {
                    return false;
                }
            }
            else
            {
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);
            }
            BasicHttpSecurityMode basicHttpSecurityMode = BasicHttpSecurityModeHelper.ToSecurityMode(mode);
            Fx.Assert(BasicHttpSecurityModeHelper.IsDefined(basicHttpSecurityMode), string.Format("Invalid BasicHttpSecurityMode value: {0}.", basicHttpSecurityMode.ToString()));
            security = new BasicHttpSecurity(basicHttpSecurityMode, transportSecurity, messageSecurity);

            return SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(), sbe);
        }
 // This is effectively just a copy of WSHttpBinding.TryCreateSecurity(), only it passes the 2007 security version
 static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSession, out WSHttpSecurity security)
 {
     if (!WSHttpSecurity.TryCreate(sbe, mode, transportSecurity, isReliableSession, out security))
         return false;
     // the last check: make sure that security binding element match the incoming security
     return SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(isReliableSession, WS2007MessageSecurityVersion), sbe);
 }
 internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security)
 {
     security = null;
     BasicHttpMessageSecurity security2 = null;
     if (sbe != null)
     {
         bool flag;
         mode &= UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message;
         if (!BasicHttpMessageSecurity.TryCreate(sbe, out security2, out flag))
         {
             return false;
         }
     }
     else
     {
         mode &= ~(UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Message);
     }
     BasicHttpSecurityMode mode2 = BasicHttpSecurityModeHelper.ToSecurityMode(mode);
     security = new BasicHttpSecurity(mode2, transportSecurity, security2);
     return SecurityElementBase.AreBindingsMatching(security.CreateMessageSecurity(), sbe);
 }
 private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, out NetMsmqSecurity security)
 {
     if (sbe != null)
     {
         mode &= UnifiedSecurityMode.Both | UnifiedSecurityMode.Message;
     }
     else
     {
         mode &= ~(UnifiedSecurityMode.Both | UnifiedSecurityMode.Message);
     }
     NetMsmqSecurityMode mode2 = NetMsmqSecurityModeHelper.ToSecurityMode(mode);
     return NetMsmqSecurity.TryCreate(sbe, mode2, out security);
 }
Exemple #40
0
        private static bool TryCreateSecurity(SecurityBindingElement sbe, UnifiedSecurityMode mode, bool isReliableSession, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security)
        {
            if (sbe != null)
                mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential;
            else
                mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential);

            SecurityMode securityMode = SecurityModeHelper.ToSecurityMode(mode);
            Contract.Assert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", securityMode.ToString()));

            if (NetTcpSecurity.TryCreate(sbe, securityMode, isReliableSession, transportSecurity, tcpTransportSecurity, out security))
                return true;

            return false;
        }
        internal static bool GetSecurityModeFromTransport(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
        {
            mode = UnifiedSecurityMode.None;
            if (http == null)
            {
                return false;
            }

            Fx.Assert(http.AuthenticationScheme.IsSingleton(), "authenticationScheme used in an Http(s)ChannelFactory must be a singleton value.");

            if (http is HttpsTransportBindingElement)
            {
                mode = UnifiedSecurityMode.Transport | UnifiedSecurityMode.TransportWithMessageCredential;
                BasicHttpSecurity.EnableTransportSecurity((HttpsTransportBindingElement)http, transportSecurity);
            }
            else if (HttpTransportSecurity.IsDisabledTransportAuthentication(http))
            {
                mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
            }
            else if (!BasicHttpSecurity.IsEnabledTransportAuthentication(http, transportSecurity))
            {
                return false;
            }
            else
            {
                mode = UnifiedSecurityMode.TransportCredentialOnly;
            }

            return true;
        }
Exemple #42
0
        internal static bool GetSecurityModeFromTransport(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity, out UnifiedSecurityMode mode)
        {
            mode = UnifiedSecurityMode.None;
            if (http == null)
            {
                return(false);
            }

            Fx.Assert(http.AuthenticationScheme.IsSingleton(), "authenticationScheme used in an Http(s)ChannelFactory must be a singleton value.");

            if (http is HttpsTransportBindingElement)
            {
                mode = UnifiedSecurityMode.Transport | UnifiedSecurityMode.TransportWithMessageCredential;
                BasicHttpSecurity.EnableTransportSecurity((HttpsTransportBindingElement)http, transportSecurity);
            }
            else if (HttpTransportSecurity.IsDisabledTransportAuthentication(http))
            {
                mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
            }
            else if (!BasicHttpSecurity.IsEnabledTransportAuthentication(http, transportSecurity))
            {
                return(false);
            }
            else
            {
                mode = UnifiedSecurityMode.TransportCredentialOnly;
            }

            return(true);
        }
Exemple #43
0
 internal static bool IsConfiguredTransportSecurity(MsmqTransportBindingElement msmq, out UnifiedSecurityMode mode)
 {
     if (msmq == null)
     {
         mode = UnifiedSecurityMode.None;
         return(false);
     }
     if (msmq.MsmqTransportSecurity.Enabled)
     {
         mode = UnifiedSecurityMode.Both | UnifiedSecurityMode.Transport;
     }
     else
     {
         mode = UnifiedSecurityMode.Message | UnifiedSecurityMode.None;
     }
     return(true);
 }