Ejemplo n.º 1
0
        internal static PasswordCharacterPolicies FromApiPasswordCharacterPolicies(ApiCharacterRules apiPolicies)
        {
            if (apiPolicies == null)
            {
                return(null);
            }

            PasswordCharacterPolicies policies = new PasswordCharacterPolicies {
                NumberOfMustContainCharacteristics = apiPolicies.NumberOfCharacteristicsToEnforce
            };

            policies.PredefinedCharacterSets = new List <PasswordCharacterSet>();
            foreach (string current in apiPolicies.MustContainCharacters)
            {
                if (current != "alpha")
                {
                    PasswordCharacterSetType type = EnumConverter.ConvertValueToCharacterSetTypeEnum(current);
                    policies.PredefinedCharacterSets.Add(new PasswordCharacterSet {
                        Type = type,
                        Set  = GeneratePasswordPoliciesSet(type)
                    });
                }
            }

            // Convert "alpha" value to uppercase & lowercase if one of them are not included yet
            if (apiPolicies.MustContainCharacters.Contains("alpha"))
            {
                if (!apiPolicies.MustContainCharacters.Contains("lowercase"))
                {
                    PasswordCharacterSetType type = PasswordCharacterSetType.Lowercase;
                    policies.PredefinedCharacterSets.Add(new PasswordCharacterSet {
                        Type = type,
                        Set  = GeneratePasswordPoliciesSet(type)
                    });
                }

                if (!apiPolicies.MustContainCharacters.Contains("uppercase"))
                {
                    PasswordCharacterSetType type = PasswordCharacterSetType.Uppercase;
                    policies.PredefinedCharacterSets.Add(new PasswordCharacterSet {
                        Type = type,
                        Set  = GeneratePasswordPoliciesSet(type)
                    });
                }
            }

            return(policies);
        }
Ejemplo n.º 2
0
        internal static char[] GeneratePasswordPoliciesSet(PasswordCharacterSetType type)
        {
            switch (type)
            {
            case PasswordCharacterSetType.Lowercase:
                return(ApiConfig.LOWERCASE_SET);

            case PasswordCharacterSetType.Uppercase:
                return(ApiConfig.UPPERCASE_SET);

            case PasswordCharacterSetType.Numeric:
                return(ApiConfig.NUMERIC_SET);

            case PasswordCharacterSetType.Special:
                return(ApiConfig.SPECIAL_SET);

            default:
                return(new char[0]);
            }
        }