コード例 #1
0
        public void SetCharLimit(CharLimit charLimit)
        {
            var limit = new StringBuilder();
            if (charLimit.HasFlag(String.CharLimit.Default))
            {
                limit.Append(String.CharLimit.Default.GetStringValue());
                CharLimit = limit.ToString();
                return;
            }

            if (charLimit.HasFlag(String.CharLimit.UpperCase))
            {
                limit.Append(String.CharLimit.UpperCase.GetStringValue());
            }

            if (charLimit.HasFlag(String.CharLimit.LowerCase))
            {
                limit.Append(String.CharLimit.LowerCase.GetStringValue());
            }

            if (charLimit.HasFlag(String.CharLimit.Number))
            {
                limit.Append(String.CharLimit.Number.GetStringValue());
            }

            CharLimit = limit.ToString();
        }
コード例 #2
0
        public void SetCharLimit(CharLimit charLimit)
        {
            var limit = new StringBuilder();

            if (charLimit.HasFlag(String.CharLimit.Default))
            {
                limit.Append(String.CharLimit.Default.GetStringValue());
                CharLimit = limit.ToString();
                return;
            }

            if (charLimit.HasFlag(String.CharLimit.UpperCase))
            {
                limit.Append(String.CharLimit.UpperCase.GetStringValue());
            }

            if (charLimit.HasFlag(String.CharLimit.LowerCase))
            {
                limit.Append(String.CharLimit.LowerCase.GetStringValue());
            }

            if (charLimit.HasFlag(String.CharLimit.Number))
            {
                limit.Append(String.CharLimit.Number.GetStringValue());
            }

            CharLimit = limit.ToString();
        }
コード例 #3
0
        /// <summary>
        ///     Get a secure random string using RNGCryptoServiceProvider
        /// </summary>
        /// <param name="length">length of random string</param>
        /// <returns>random string</returns>
        public string NextSecure(int length)
        {
            var chars = CharLimit.ToCharArray();
            var data  = new byte[1];

            using (var crypto = new RNGCryptoServiceProvider())
            {
                crypto.GetNonZeroBytes(data);
                data = new byte[length];
                crypto.GetNonZeroBytes(data);
            }
            var result = new StringBuilder(length);

            foreach (var b in data)
            {
                result.Append(chars[b % (chars.Length)]);
            }
            return(result.ToString());
        }