在我正在处理的应用程序中,创建的用户在激活帐户之前不会获得批准。 IsApproved
标志在激活之前设置为false。
当他们提交激活时,我们希望在激活用户之前检查他们的密码是否有效,但如果用户未获批准,Membership.ValidateUser(..)
将始终返回false,因此似乎无法区分密码错误和未经批准的用户。
如何检查密码以验证未获批准的用户?
到目前为止我看过的可能的解决方案:
ChangePassword
更改为随机密码,然后再返回,检查是否成功:这是一个讨厌的黑客,我真的不想这样做。CheckPassword
上调用私有SqlMembershipProvider
函数:方法是私有的,原因是,我不想这样做。还有其他方法吗?当然,这是标准功能,任何功能齐全的用户帐户系统都需要激活等功能。系统的设计是否比我正在做的更好?我是以错误的方式使用IsApproved吗?
感谢您的帮助。
编辑:这似乎引起了一些混乱。我创建了一个用户帐户,它有一个符合复杂性要求的密码等。我想要做的是,当用户提交一个包含用户名和密码的表单时,检查他们提供的密码是否与密码相匹配帐户。我只想知道他们是否提供了正确的密码。根据我对框架的调查,如果没有也检查他们的帐户是否有效,这似乎是不可能的。
答案 0 :(得分:0)
现在我了解你。我的建议是暂时将他们的密码存储在Membership Profile
中并与之匹配。匹配后,激活帐户并清除Profile
。注意:profile
会将password
存储在plain text
中。我正在做类似的事情。