0

我正在使用asp.net Membership,我开发了一个可以重新生成临时密码发送给用户的管理页面,然后当用户第一次登录时,必须更改密码,但我不知道谁知道如果密码被重置。

我在基本控制器中尝试过类似的东西:

if (user.LastPasswordChangedDate >= user.LastLoginDate)
{
    filterContext.Result = RedirectToAction("ChangePassword", "Account");
}

但是,我已经更新了 LastLoginDate,因为 ChangePassword Action 需要与经过身份验证的用户一起使用。

我在重置密码以锁定/解锁用户以更新“LastLockoutDate”并执行以下操作时正在考虑:

if (user.LastPasswordChangedDate >= user.LastLockoutDate)
{
    filterContext.Result = RedirectToAction("ChangePassword", "Account");
}

但是,我找不到手动锁定的方法

谢谢!!!

4

1 回答 1

1

您可以做很多事情,其中​​一些取决于您的系统如何工作。例如,如果您不使用评论,您可以在评论字段中存储特定的数据。

或者,如果您不使用“已批准”位(即,当您创建新用户时,您不需要他们验证电子邮件或其他内容,而是在 IsApproved 设置为 true 的情况下创建它们),那么您可以将 IsApproved 设置为如果为假,则强制更改密码。

在 Membership API 中没有访问这些数据的方法,您只需要从您的数据库中访问它。

您也可以将其存储在个性化提供程序中。

另一种选择是简单地避免将其存储在 Membership 数据库中,而只是在您的应用程序数据中添加一个表或一个字段来处理这个问题。

于 2012-10-07T00:28:52.597 回答