Membership.GeneratePassword不符合numberOfNonAlphaNumericCharacters

时间:2009-12-03 21:26:14

标签: asp.net asp.net-membership

我正在使用Membership.GeneratePassword(10,0)。

即。根据MSDN定义,非AlphaNumeric字符数应为零:http://msdn.microsoft.com/en-us/library/system.web.security.membership.generatepassword(VS.80).aspx

但是,我注意到这不符合我的预期。算法中是否有错误,或者看到这个是正常的吗?我仍然在密码中看到相当多的标点字符,当我期望看到零时生成密码。

作为测试,我在ASP.NET页面上抛出了一个Grid并写了这个以查看输出是什么:

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 个答案:

答案 0 :(得分:2)

该文档已过期。试试这个:

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

  

生成的密码中标点符号的最小数。

答案 1 :(得分:0)

我只使用.NET 2.0所以我认为这是一个错误,或者更可能是他们的.NET 2.0文档中的错误打印,如3.0及更高版本中他们有最小这个词!