我正在使用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; }
}
虽然结果显示标点符号越来越多,但实际要求并未得到尊重。
我在这里得到了错误的结局还是我失去了情节? : - )
答案 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及更高版本中他们有最小这个词!