2

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

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

我不想要任何非字母数字字符,所以我指定为零。但是,它仍然失败,因为我在执行 Membership.GeneratePassword(10, 0) 时获得了包含非字母数字内容的密码

Lg|1-F;?a4

为什么是竖线(|)、连字符(-)、分号和问号?

4

1 回答 1

0

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

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());
于 2021-12-27T14:50:04.117 回答