【问题标题】:Forms Authentication - How to verify username and pwd of inactive user?表单身份验证 - 如何验证非活动用户的用户名和密码?
【发布时间】:2009-03-30 16:39:41
【问题描述】:
我正在为允许用户注册但未激活的应用程序使用表单身份验证。我们将通过蜗牛邮件发送激活码(长篇故事),用户可以返回该信息并激活他们的帐户。
我想创建一个页面,用户可以返回并输入他们的用户名、密码和生成的密钥来激活帐户。我存储在另一个表中的密钥,我计划生成它。我在使用非活动帐户验证用户名和密码时遇到问题。我试过 Membership.ValidateUser(username,password) 但它失败了,但如果我激活帐户,它就可以工作。
关于如何检查的想法?
【问题讨论】:
标签:
asp.net
forms-authentication
【解决方案1】:
先激活账户。
如果您通过电子邮件向他们发送激活码,请有一个匿名访问页面,该页面从电子邮件中接收激活码(可能通过查询字符串),激活帐户,并将他们重定向到激活表单身份验证的登录页面(假设用户名和密码已经创建)。
如果访问代码无效且失败,您可以选择停用该帐户。
【解决方案2】:
我不会设置 IsActive = false。那是为了禁用帐户,防止任何类型的登录。相反,我没有看到让他们能够登录的问题。我会使用会员角色来指定何时验证用户。 IE。 “已验证”。
如果他们尚未激活帐户并尝试登录,您只需检查他们是否具有已验证角色。如果没有,将他们重定向到“您的帐户尚未激活。请等待蜗牛邮件”的页面。或“请在下方输入您的验证码”。消息。
当他们最终从蜗牛邮件中输入正确的验证码时,您只需将他们添加到已验证角色。
这使您可以控制允许他们登录并“检查”他们的帐户状态。并且,解决了您的 IsActive 问题。