为什么要成为会员.当我指定0时,GeneratePassword会给我非字母数字



我使用过会员生成密码(10,0)在我的C#应用程序代码中。GeneratePassword方法生成指定长度的随机密码。

第二个参数指定生成的密码中非字母数字字符(如@、#、!、%、&等)的最小数目。

我不想要任何非字母数字字符,所以我指定了零。然而,它仍然失败,因为我在执行时得到了一个包含非字母数字内容的密码会员生成密码(10,0)

Lg|1-F;?a4

为什么使用竖管(|)和hypen(-)、分号和问号?

我最终使用了下面的解决方法,该方法使用正则表达式去掉非字母数字字符,并用随机数替换它们。

String newPassword = Membership.GeneratePassword(8, 0); //Second arg only guarantees a minimum number (not maximum) number of alphanumeric characters.
Random rng = New Random();
newPassword = Regex.Replace(newPassword, @"[^a-zA-Z0-9]", rng.Next(0, 10).ToString());

最新更新