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)); }
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)); }
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)); }
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; }
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); }
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)); }
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); }
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); }
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); }
internal static bool TryCreateSecurity(SecurityBindingElement securityElement, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security) { return BasicHttpSecurity.TryCreate(securityElement, mode, transportSecurity, out security); }
internal static bool TryCreateSecurity(SecurityBindingElement securityElement, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security) { return(BasicHttpSecurity.TryCreate(securityElement, mode, transportSecurity, out security)); }
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)); }
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); }
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); }
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; }
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); }
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); }