Membership.GeneratePassword не соответствует numberOfNonAlphaNumericCharacters - PullRequest
2 голосов
/ 04 декабря 2009

Я использую Membership.GeneratePassword (10, 0).

т.е. Количество не алфавитно-цифровых символов должно быть равно нулю в соответствии с определением MSDN: http://msdn.microsoft.com/en-us/library/system.web.security.membership.generatepassword(VS.80).aspx

Однако я заметил, что это не соответствовало тому, что я ожидал. Есть ли ошибка в алгоритме, или это нормально видеть? Я все еще вижу достаточное количество знаков препинания в пароле, который генерируется, когда я ожидаю увидеть ноль.

В качестве теста я бросил Grid на страницу ASP.NET и написал это, чтобы увидеть, что получилось:

public partial class Verification : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int max = 0; // change as required
        List<MemberPassword> list = new List<MemberPassword>();
        for (int i = 0; i <= 20; i++)
        {
            for (int j = 0; j <= max; j++)
            {
                string display = String.Format("Membership.GeneratePassword(10, {0})", j);
                list.Add(new MemberPassword(i, j, Membership.GeneratePassword(10, j), display));
            }
        }

        this.GridView1.DataSource = list;
        this.GridView1.DataBind();
    }
}

public class MemberPassword
{
    public MemberPassword(int id, int numNonAlphaNum, string password, string display)
    {
        this.Id = id;
        this.NumNonAlphaNum = numNonAlphaNum;
        this.Password = password;
        this.Display = display;
    }

    public int Id { get; set; }
    public int NumNonAlphaNum { get; set; }
    public string Password { get; set; }
    public string  Display { get; set; }
}

Хотя результаты показывают прогресс в направлении все большего числа знаков препинания, фактическое требование не выполняется.

У меня здесь неправильный конец клюшки или я теряю сюжет? : -)

Ответы [ 2 ]

2 голосов
/ 04 декабря 2009

Эта документация устарела. Попробуйте это:

http://msdn.microsoft.com/en-us/library/system.web.security.membership.generatepassword.aspx

минимальное количество знаков препинания в сгенерированном пароле.

0 голосов
/ 06 июня 2011

Я использую только .NET 2.0, поэтому я считаю, что это ошибка, или, скорее всего, ошибка в их документации .NET 2.0, так как в версии 3.0 и выше у них есть слово минимум !

...