我有一个 Web 应用程序c# 2008
。
我被分配了一项任务来为此网站设置密码策略。
该政策是
- 第一个字符是大写
- 第二个字符是小写
- 字符是“特殊字符”
- 第 4 到第 8 个字符是随机数字
- 密码正好是 8 个字符
- 密码应在 6 个月后过期
我无法弄清楚这一点。提前致谢。
如果您想做到“正确”且正确,请选择正则表达式。如果您对他们没有任何经验,如果紧急,请忘记它。
取而代之的是快速而肮脏的方式。这是未经测试的伪代码:
if (password.Length == 8)
{
check password[0] for upper case
check password[1] for lower case
check password[2] for special char
check password[3] && password[7] for "random digits"
//return false, throw error, whatever you want in the case of any failures.
}
else
{
return error "your password is too short"
}
不确定要如何使密码在 6 个月后过期。如果您将密码视为具有“到期日期”字段的自定义类,并且您只需要 6 个月后,只需使用 MyPassword.ExpirationDate = DateTime.Now.AddMonths(6);
在这里问它而不尝试任何东西不是一个好习惯。听起来你正试图让别人完成你的工作。我可以建议你应该做的方式,而不是提供代码。
您可以使用正则表达式来做到这一点。你可以搜索它。有很多资源。你应该构造一个正则表达式来检查你想要的约束,除了密码过期。您应该检查数据库上的密码过期时间。您可以定义一个在每个午夜工作的作业,它将检查密码数据库并检测过期的密码。