internal void SetRequestParameters(Collection <XmlElement> requestParameters, TrustDriver trustDriver) { if (requestParameters == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestParameters"); } if (trustDriver == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("trustDriver"); } Collection <XmlElement> unknownRequestParameters = new Collection <XmlElement>(); foreach (XmlElement element in requestParameters) { int keySize; string tokenType; SecurityKeyType keyType; Collection <XmlElement> requiredClaims; if (trustDriver.TryParseKeySizeElement(element, out keySize)) { _keySize = keySize; } else if (trustDriver.TryParseKeyTypeElement(element, out keyType)) { this.KeyType = keyType; } else if (trustDriver.TryParseTokenTypeElement(element, out tokenType)) { this.TokenType = tokenType; } // Only copy RP policy to client policy for TrustFeb2005 else if (trustDriver.StandardsManager.TrustVersion == TrustVersion.WSTrustFeb2005) { if (trustDriver.TryParseRequiredClaimsElement(element, out requiredClaims)) { Collection <XmlElement> unrecognizedRequiredClaims = new Collection <XmlElement>(); foreach (XmlElement claimRequirement in requiredClaims) { if (claimRequirement.LocalName == "ClaimType" && claimRequirement.NamespaceURI == wsidNamespace) { string claimValue = claimRequirement.GetAttribute("Uri", string.Empty); if (!string.IsNullOrEmpty(claimValue)) { ClaimTypeRequirement claimTypeRequirement; string optional = claimRequirement.GetAttribute("Optional", string.Empty); if (String.IsNullOrEmpty(optional)) { claimTypeRequirement = new ClaimTypeRequirement(claimValue); } else { claimTypeRequirement = new ClaimTypeRequirement(claimValue, XmlConvert.ToBoolean(optional)); } _claimTypeRequirements.Add(claimTypeRequirement); } } else { unrecognizedRequiredClaims.Add(claimRequirement); } } if (unrecognizedRequiredClaims.Count > 0) { unknownRequestParameters.Add(trustDriver.CreateRequiredClaimsElement(unrecognizedRequiredClaims)); } } else { unknownRequestParameters.Add(element); } } } unknownRequestParameters = trustDriver.ProcessUnknownRequestParameters(unknownRequestParameters, requestParameters); if (unknownRequestParameters.Count > 0) { for (int i = 0; i < unknownRequestParameters.Count; ++i) { this.AdditionalRequestParameters.Add(unknownRequestParameters[i]); } } }
internal void SetRequestParameters(Collection<XmlElement> requestParameters, TrustDriver trustDriver) { if (requestParameters == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestParameters"); } if (trustDriver == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("trustDriver"); } Collection<XmlElement> unknownRequestParameters = new Collection<XmlElement>(); foreach (XmlElement element in requestParameters) { int num; if (trustDriver.TryParseKeySizeElement(element, out num)) { this.keySize = num; } else { SecurityKeyType type; if (trustDriver.TryParseKeyTypeElement(element, out type)) { this.KeyType = type; } else { string str; if (trustDriver.TryParseTokenTypeElement(element, out str)) { this.TokenType = str; } else if (trustDriver.StandardsManager.TrustVersion == TrustVersion.WSTrustFeb2005) { Collection<XmlElement> collection2; if (trustDriver.TryParseRequiredClaimsElement(element, out collection2)) { Collection<XmlElement> claimsList = new Collection<XmlElement>(); foreach (XmlElement element2 in collection2) { if ((element2.LocalName == "ClaimType") && (element2.NamespaceURI == "http://schemas.xmlsoap.org/ws/2005/05/identity")) { string attribute = element2.GetAttribute("Uri", string.Empty); if (!string.IsNullOrEmpty(attribute)) { ClaimTypeRequirement requirement; string str3 = element2.GetAttribute("Optional", string.Empty); if (string.IsNullOrEmpty(str3)) { requirement = new ClaimTypeRequirement(attribute); } else { requirement = new ClaimTypeRequirement(attribute, XmlConvert.ToBoolean(str3)); } this.claimTypeRequirements.Add(requirement); } } else { claimsList.Add(element2); } } if (claimsList.Count > 0) { unknownRequestParameters.Add(trustDriver.CreateRequiredClaimsElement(claimsList)); } } else { unknownRequestParameters.Add(element); } } } } } unknownRequestParameters = trustDriver.ProcessUnknownRequestParameters(unknownRequestParameters, requestParameters); if (unknownRequestParameters.Count > 0) { for (int i = 0; i < unknownRequestParameters.Count; i++) { this.AdditionalRequestParameters.Add(unknownRequestParameters[i]); } } }
internal void SetRequestParameters(Collection <XmlElement> requestParameters, TrustDriver trustDriver) { if (requestParameters == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestParameters"); } if (trustDriver == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("trustDriver"); } Collection <XmlElement> unknownRequestParameters = new Collection <XmlElement>(); foreach (XmlElement element in requestParameters) { int num; if (trustDriver.TryParseKeySizeElement(element, out num)) { this.keySize = num; } else { SecurityKeyType type; if (trustDriver.TryParseKeyTypeElement(element, out type)) { this.KeyType = type; } else { string str; if (trustDriver.TryParseTokenTypeElement(element, out str)) { this.TokenType = str; } else if (trustDriver.StandardsManager.TrustVersion == TrustVersion.WSTrustFeb2005) { Collection <XmlElement> collection2; if (trustDriver.TryParseRequiredClaimsElement(element, out collection2)) { Collection <XmlElement> claimsList = new Collection <XmlElement>(); foreach (XmlElement element2 in collection2) { if ((element2.LocalName == "ClaimType") && (element2.NamespaceURI == "http://schemas.xmlsoap.org/ws/2005/05/identity")) { string attribute = element2.GetAttribute("Uri", string.Empty); if (!string.IsNullOrEmpty(attribute)) { ClaimTypeRequirement requirement; string str3 = element2.GetAttribute("Optional", string.Empty); if (string.IsNullOrEmpty(str3)) { requirement = new ClaimTypeRequirement(attribute); } else { requirement = new ClaimTypeRequirement(attribute, XmlConvert.ToBoolean(str3)); } this.claimTypeRequirements.Add(requirement); } } else { claimsList.Add(element2); } } if (claimsList.Count > 0) { unknownRequestParameters.Add(trustDriver.CreateRequiredClaimsElement(claimsList)); } } else { unknownRequestParameters.Add(element); } } } } } unknownRequestParameters = trustDriver.ProcessUnknownRequestParameters(unknownRequestParameters, requestParameters); if (unknownRequestParameters.Count > 0) { for (int i = 0; i < unknownRequestParameters.Count; i++) { this.AdditionalRequestParameters.Add(unknownRequestParameters[i]); } } }
internal void SetRequestParameters(Collection <XmlElement> requestParameters, TrustDriver trustDriver) { if (requestParameters == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestParameters"); } if (trustDriver == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("trustDriver"); } Collection <XmlElement> unknownRequestParameters = new Collection <XmlElement>(); foreach (XmlElement requestParameter in requestParameters) { int keySize; if (trustDriver.TryParseKeySizeElement(requestParameter, out keySize)) { this.keySize = keySize; } else { SecurityKeyType keyType; if (trustDriver.TryParseKeyTypeElement(requestParameter, out keyType)) { this.KeyType = keyType; } else { string tokenType; if (trustDriver.TryParseTokenTypeElement(requestParameter, out tokenType)) { this.TokenType = tokenType; } else if (trustDriver.StandardsManager.TrustVersion == TrustVersion.WSTrustFeb2005) { Collection <XmlElement> requiredClaims; if (trustDriver.TryParseRequiredClaimsElement(requestParameter, out requiredClaims)) { Collection <XmlElement> collection = new Collection <XmlElement>(); foreach (XmlElement xmlElement in requiredClaims) { if (xmlElement.LocalName == "ClaimType" && xmlElement.NamespaceURI == "http://schemas.xmlsoap.org/ws/2005/05/identity") { string attribute1 = xmlElement.GetAttribute("Uri", string.Empty); if (!string.IsNullOrEmpty(attribute1)) { string attribute2 = xmlElement.GetAttribute("Optional", string.Empty); this.claimTypeRequirements.Add(!string.IsNullOrEmpty(attribute2) ? new ClaimTypeRequirement(attribute1, XmlConvert.ToBoolean(attribute2)) : new ClaimTypeRequirement(attribute1)); } } else { collection.Add(xmlElement); } } if (collection.Count > 0) { unknownRequestParameters.Add(trustDriver.CreateRequiredClaimsElement((IEnumerable <XmlElement>)collection)); } } else { unknownRequestParameters.Add(requestParameter); } } } } } Collection <XmlElement> collection1 = trustDriver.ProcessUnknownRequestParameters(unknownRequestParameters, requestParameters); if (collection1.Count <= 0) { return; } for (int index = 0; index < collection1.Count; ++index) { this.AdditionalRequestParameters.Add(collection1[index]); } }
internal void SetRequestParameters(Collection<XmlElement> requestParameters, TrustDriver trustDriver) { if (requestParameters == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("requestParameters"); if (trustDriver == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("trustDriver"); Collection<XmlElement> unknownRequestParameters = new Collection<XmlElement>(); foreach (XmlElement element in requestParameters) { int keySize; string tokenType; SecurityKeyType keyType; Collection<XmlElement> requiredClaims; if (trustDriver.TryParseKeySizeElement(element, out keySize)) this.keySize = keySize; else if (trustDriver.TryParseKeyTypeElement(element, out keyType)) this.KeyType = keyType; else if (trustDriver.TryParseTokenTypeElement(element, out tokenType)) this.TokenType = tokenType; // Only copy RP policy to client policy for TrustFeb2005 else if (trustDriver.StandardsManager.TrustVersion == TrustVersion.WSTrustFeb2005) { if (trustDriver.TryParseRequiredClaimsElement(element, out requiredClaims)) { Collection<XmlElement> unrecognizedRequiredClaims = new Collection<XmlElement>(); foreach (XmlElement claimRequirement in requiredClaims) { if (claimRequirement.LocalName == "ClaimType" && claimRequirement.NamespaceURI == wsidNamespace) { string claimValue = claimRequirement.GetAttribute("Uri", string.Empty); if (!string.IsNullOrEmpty(claimValue)) { ClaimTypeRequirement claimTypeRequirement; string optional = claimRequirement.GetAttribute("Optional", string.Empty); if (String.IsNullOrEmpty(optional)) { claimTypeRequirement = new ClaimTypeRequirement(claimValue); } else { claimTypeRequirement = new ClaimTypeRequirement(claimValue, XmlConvert.ToBoolean(optional)); } this.claimTypeRequirements.Add(claimTypeRequirement); } } else { unrecognizedRequiredClaims.Add(claimRequirement); } } if (unrecognizedRequiredClaims.Count > 0) unknownRequestParameters.Add(trustDriver.CreateRequiredClaimsElement(unrecognizedRequiredClaims)); } else { unknownRequestParameters.Add(element); } } } unknownRequestParameters = trustDriver.ProcessUnknownRequestParameters(unknownRequestParameters, requestParameters); if (unknownRequestParameters.Count > 0) { for (int i = 0; i < unknownRequestParameters.Count; ++i) this.AdditionalRequestParameters.Add(unknownRequestParameters[i]); } }