Ejemplo n.º 1
0
        internal static ADSuggestedValueType GetsuggestedValueTypeFromClaimType(ADClaimValueType claimValaueType)
        {
            ADSuggestedValueType aDSuggestedValueType = ADSuggestedValueType.Invalid;
            ADClaimValueType     aDClaimValueType     = claimValaueType;

            if (aDClaimValueType <= ADClaimValueType.SID)
            {
                if (aDClaimValueType >= ADClaimValueType.Int64)
                {
                    if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 0)
                    {
                        aDSuggestedValueType = ADSuggestedValueType.Int64;
                        return(aDSuggestedValueType);
                    }
                    else if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 1)
                    {
                        aDSuggestedValueType = ADSuggestedValueType.UInt64;
                        return(aDSuggestedValueType);
                    }
                    else if ((int)(aDClaimValueType - ADClaimValueType.Int64) == 2 || (int)(aDClaimValueType - ADClaimValueType.Int64) == 3 || (int)(aDClaimValueType - ADClaimValueType.Int64) == 4)
                    {
                        aDSuggestedValueType = ADSuggestedValueType.String;
                        return(aDSuggestedValueType);
                    }
                }
                else
                {
                    return(aDSuggestedValueType);
                }
            }
            if (aDClaimValueType != ADClaimValueType.OctetString)
            {
                return(aDSuggestedValueType);
            }
            aDSuggestedValueType = ADSuggestedValueType.String;
            return(aDSuggestedValueType);
        }
Ejemplo n.º 2
0
        internal static string GetSuggestedValueXmlFromSuggestedValueEntryList(ADSuggestedValueEntry[] claimValues, ADSuggestedValueType valueType)
        {
            XmlSerializer           xmlSerializer           = new XmlSerializer(typeof(PossibleClaimValuesType));
            PossibleClaimValuesType possibleClaimValuesType = new PossibleClaimValuesType();
            ADSuggestedValueType    aDSuggestedValueType    = valueType;

            if (aDSuggestedValueType == ADSuggestedValueType.Int64)
            {
                IntegerListType         integerListType            = new IntegerListType();
                List <IntegerItemType>  integerItemTypes           = new List <IntegerItemType>();
                ADSuggestedValueEntry[] aDSuggestedValueEntryArray = claimValues;
                for (int i = 0; i < (int)aDSuggestedValueEntryArray.Length; i++)
                {
                    ADSuggestedValueEntry aDSuggestedValueEntry = aDSuggestedValueEntryArray[i];
                    IntegerItemType       integerItemType       = new IntegerItemType();
                    integerItemType.Value            = Convert.ToInt64(aDSuggestedValueEntry.Value, CultureInfo.InvariantCulture);
                    integerItemType.ValueDescription = aDSuggestedValueEntry.ValueDescription;
                    integerItemType.ValueDisplayName = aDSuggestedValueEntry.ValueDisplayName;
                    integerItemType.ValueGUID        = aDSuggestedValueEntry.ValueGUID;
                    integerItemTypes.Add(integerItemType);
                }
                integerListType.Item         = integerItemTypes.ToArray();
                possibleClaimValuesType.Item = integerListType;
            }
            else if (aDSuggestedValueType == ADSuggestedValueType.UInt64)
            {
                UnsignedIntegerListType        unsignedIntegerListType     = new UnsignedIntegerListType();
                List <UnsignedIntegerItemType> unsignedIntegerItemTypes    = new List <UnsignedIntegerItemType>();
                ADSuggestedValueEntry[]        aDSuggestedValueEntryArray1 = claimValues;
                for (int j = 0; j < (int)aDSuggestedValueEntryArray1.Length; j++)
                {
                    ADSuggestedValueEntry   aDSuggestedValueEntry1  = aDSuggestedValueEntryArray1[j];
                    UnsignedIntegerItemType unsignedIntegerItemType = new UnsignedIntegerItemType();
                    unsignedIntegerItemType.Value            = Convert.ToUInt64(aDSuggestedValueEntry1.Value, CultureInfo.InvariantCulture);
                    unsignedIntegerItemType.ValueDescription = aDSuggestedValueEntry1.ValueDescription;
                    unsignedIntegerItemType.ValueDisplayName = aDSuggestedValueEntry1.ValueDisplayName;
                    unsignedIntegerItemType.ValueGUID        = aDSuggestedValueEntry1.ValueGUID;
                    unsignedIntegerItemTypes.Add(unsignedIntegerItemType);
                }
                unsignedIntegerListType.Item = unsignedIntegerItemTypes.ToArray();
                possibleClaimValuesType.Item = unsignedIntegerListType;
            }
            else if (aDSuggestedValueType == ADSuggestedValueType.String)
            {
                StringListType          stringListType              = new StringListType();
                List <StringItemType>   stringItemTypes             = new List <StringItemType>();
                ADSuggestedValueEntry[] aDSuggestedValueEntryArray2 = claimValues;
                for (int k = 0; k < (int)aDSuggestedValueEntryArray2.Length; k++)
                {
                    ADSuggestedValueEntry aDSuggestedValueEntry2 = aDSuggestedValueEntryArray2[k];
                    StringItemType        stringItemType         = new StringItemType();
                    stringItemType.Value            = (string)aDSuggestedValueEntry2.Value;
                    stringItemType.ValueDescription = aDSuggestedValueEntry2.ValueDescription;
                    stringItemType.ValueDisplayName = aDSuggestedValueEntry2.ValueDisplayName;
                    stringItemType.ValueGUID        = aDSuggestedValueEntry2.ValueGUID;
                    stringItemTypes.Add(stringItemType);
                }
                stringListType.Item          = stringItemTypes.ToArray();
                possibleClaimValuesType.Item = stringListType;
            }
            else
            {
                throw new ADException("Unable to create Suggested Values Xml for the given Claim Type");
            }
            StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture);

            xmlSerializer.Serialize(stringWriter, possibleClaimValuesType);
            return(stringWriter.ToString());
        }