コード例 #1
0
 internal static XmlElement GetClaimTypeRequirement(Collection <XmlElement> additionalRequestParameters, SecurityStandardsManager standardsManager)
 {
     foreach (XmlElement requestParameter in additionalRequestParameters)
     {
         if (requestParameter.LocalName == ((WSTrust.Driver)standardsManager.TrustDriver).DriverDictionary.Claims.Value && requestParameter.NamespaceURI == ((WSTrust.Driver)standardsManager.TrustDriver).DriverDictionary.Namespace.Value)
         {
             return(requestParameter);
         }
         if (requestParameter.LocalName == DXD.TrustDec2005Dictionary.SecondaryParameters.Value && requestParameter.NamespaceURI == DXD.TrustDec2005Dictionary.Namespace.Value)
         {
             Collection <XmlElement> additionalRequestParameters1 = new Collection <XmlElement>();
             foreach (XmlNode childNode in requestParameter.ChildNodes)
             {
                 XmlElement xmlElement = childNode as XmlElement;
                 if (xmlElement != null)
                 {
                     additionalRequestParameters1.Add(xmlElement);
                 }
             }
             XmlElement claimTypeRequirement = IssuedSecurityTokenParameters.GetClaimTypeRequirement(additionalRequestParameters1, standardsManager);
             if (claimTypeRequirement != null)
             {
                 return(claimTypeRequirement);
             }
         }
     }
     return((XmlElement)null);
 }
コード例 #2
0
 public static bool IsInfoCardParameters(IssuedSecurityTokenParameters parameters, SecurityStandardsManager standardsManager)
 {
     if (parameters == null || parameters.TokenType != "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1" || parameters.KeyType != SecurityKeyType.AsymmetricKey)
     {
         return(false);
     }
     if (parameters.ClaimTypeRequirements.Count == 1)
     {
         ClaimTypeRequirement claimTypeRequirement = parameters.ClaimTypeRequirements[0];
         if (claimTypeRequirement == null || claimTypeRequirement.ClaimType != IssuedSecurityTokenParameters.wsidPPIClaim)
         {
             return(false);
         }
     }
     else
     {
         if (parameters.AdditionalRequestParameters == null || parameters.AdditionalRequestParameters.Count <= 0)
         {
             return(false);
         }
         bool       flag = false;
         XmlElement claimTypeRequirement = IssuedSecurityTokenParameters.GetClaimTypeRequirement(parameters.AdditionalRequestParameters, standardsManager);
         if (claimTypeRequirement != null && claimTypeRequirement.ChildNodes.Count == 1)
         {
             XmlElement childNode = claimTypeRequirement.ChildNodes[0] as XmlElement;
             if (childNode != null)
             {
                 XmlNode namedItem = childNode.Attributes.GetNamedItem("Uri");
                 if (namedItem != null && namedItem.Value == IssuedSecurityTokenParameters.wsidPPIClaim)
                 {
                     flag = true;
                 }
             }
         }
         if (!flag)
         {
             return(false);
         }
     }
     return(!(parameters.IssuerAddress != (EndpointAddress)null) && (parameters.AlternativeIssuerEndpoints == null || parameters.AlternativeIssuerEndpoints.Count <= 0));
 }