Пример #1
0
        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]);
                }
            }
        }
Пример #4
0
        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]);
            }
        }