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, out WSDualHttpSecurity security) { security = null; if (sbe == null) { security = new WSDualHttpSecurity(WSDualHttpSecurityMode.None, null); } else { MessageSecurityOverHttp messageSecurity; if (!MessageSecurityOverHttp.TryCreate(sbe, false, true, out messageSecurity)) { return(false); } security = new WSDualHttpSecurity(WSDualHttpSecurityMode.Message, messageSecurity); } // the last check: make sure that security binding element match the incoming security return(SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(), sbe)); }
internal static bool TryCreate(SecurityBindingElement wsSecurity, SecurityMode mode, bool isReliableSessionEnabled, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security) { security = null; MessageSecurityOverTcp messageSecurity = null; if (mode == SecurityMode.Message) { if (!MessageSecurityOverTcp.TryCreate(wsSecurity, isReliableSessionEnabled, null, out messageSecurity)) { return(false); } } else if (mode == SecurityMode.TransportWithMessageCredential) { if (!MessageSecurityOverTcp.TryCreate(wsSecurity, isReliableSessionEnabled, transportSecurity, out messageSecurity)) { return(false); } } security = new NetTcpSecurity(mode, tcpTransportSecurity, messageSecurity); return(SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(isReliableSessionEnabled), wsSecurity, false)); }