使用SQL Server成员资格提供程序的ASP.NET应用程序中的示例方案:
1)用户无法记住他们的确切密码,并在很短的时间内尝试多次使用无效密码登录(例如在10分钟的窗口中输入5次)。这会锁定用户(即将aspnet_Membership表的IsLockedOut标志设置为1)。
2)用户进入“忘记密码”屏幕,尝试通过电子邮件向他们发送新密码。此屏幕使用PasswordRecovery控件。用户输入正确的用户ID,但在密码恢复过程中无法进一步,因为IsLockedOut标志为1.(他们甚至没有看到他们的安全问题)。
3)然后,用户必须致电技术支持以解锁他们等。
为了减轻支持人员的负担,我们尝试通过使用PasswordRecovery控件(如果可能)来减少步骤3所需的时间,与锁定的用户一起工作。即,当他们输入他们的登录ID时,出现安全问题,并且如果他们输入正确的答案,则系统将解锁用户,并将新的临时密码通过电子邮件发送给他们。我想知道是否可以调整PasswordRecovery控件来执行此操作。或者这种方法可能存在安全问题?
答案 0 :(得分:3)
您可以创建一个具有 AutoUnlockTimeout 设置的自定义成员资格提供程序,该设置可以通过配置进行配置 - Implementing Automatic Unlocking in ASP.NET 2.0 SqlMembershipProvider。