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