X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.ServiceModel%2FSystem.ServiceModel.Configuration%2FFederatedMessageSecurityOverHttpElement.cs;h=9a689194d18e5a3285c89964a7119c56811d88f2;hb=2291d400db58d0218cef3b7404dbceb743a7ce79;hp=ddb6e17b873483bb394d2702a83517aad4e607c7;hpb=b5b0061a08abcc265b5b396b0a33ee9d216169e3;p=mono.git diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/FederatedMessageSecurityOverHttpElement.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/FederatedMessageSecurityOverHttpElement.cs index ddb6e17b873..9a689194d18 100644 --- a/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/FederatedMessageSecurityOverHttpElement.cs +++ b/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/FederatedMessageSecurityOverHttpElement.cs @@ -62,6 +62,7 @@ namespace System.ServiceModel.Configuration static ConfigurationPropertyCollection properties; static ConfigurationProperty algorithm_suite; static ConfigurationProperty claim_type_requirements; + static ConfigurationProperty establish_security_context; static ConfigurationProperty issued_key_type; static ConfigurationProperty issued_token_type; static ConfigurationProperty issuer; @@ -80,6 +81,10 @@ namespace System.ServiceModel.Configuration typeof (ClaimTypeElementCollection), null, null/* FIXME: get converter for ClaimTypeElementCollection*/, null, ConfigurationPropertyOptions.None); + establish_security_context = new ConfigurationProperty ("establishSecurityContext", + typeof (bool), "true", new BooleanConverter (), null, + ConfigurationPropertyOptions.None); + issued_key_type = new ConfigurationProperty ("issuedKeyType", typeof (SecurityKeyType), "SymmetricKey", null/* FIXME: get converter for SecurityKeyType*/, null, ConfigurationPropertyOptions.None); @@ -106,6 +111,7 @@ namespace System.ServiceModel.Configuration properties.Add (algorithm_suite); properties.Add (claim_type_requirements); + properties.Add (establish_security_context); properties.Add (issued_key_type); properties.Add (issued_token_type); properties.Add (issuer); @@ -136,6 +142,14 @@ namespace System.ServiceModel.Configuration get { return (ClaimTypeElementCollection) base [claim_type_requirements]; } } + [ConfigurationProperty ("establishSecurityContext", + Options = ConfigurationPropertyOptions.None, + DefaultValue = true)] + public bool EstablishSecurityContext { + get { return (bool) base [establish_security_context]; } + set { base [establish_security_context] = value; } + } + [ConfigurationProperty ("issuedKeyType", Options = ConfigurationPropertyOptions.None, DefaultValue = "SymmetricKey")] @@ -185,7 +199,25 @@ namespace System.ServiceModel.Configuration get { return (XmlElementElementCollection) base [token_request_parameters]; } } - + // Methods + internal void ApplyConfiguration (FederatedMessageSecurityOverHttp s) + { + s.AlgorithmSuite = AlgorithmSuite; + foreach (ClaimTypeElement cte in ClaimTypeRequirements) + s.ClaimTypeRequirements.Add (cte.Create ()); + s.EstablishSecurityContext = EstablishSecurityContext; + s.IssuedKeyType = IssuedKeyType; + s.IssuedTokenType = IssuedTokenType; + if (Issuer.Address != null) + s.IssuerAddress = new EndpointAddress (Issuer.Address, Issuer.Identity.Create (), Issuer.Headers.Headers); + if (!String.IsNullOrEmpty (Issuer.Binding)) + s.IssuerBinding = ConfigUtil.CreateBinding (Issuer.Binding, Issuer.BindingConfiguration); + if (IssuerMetadata.Address != null) + s.IssuerMetadataAddress = new EndpointAddress (IssuerMetadata.Address, IssuerMetadata.Identity.Create (), IssuerMetadata.Headers.Headers); + s.NegotiateServiceCredential = NegotiateServiceCredential; + foreach (XmlElementElement xee in TokenRequestParameters) + s.TokenRequestParameters.Add (xee.XmlElement); + } } }