Sitecore强制密码更改

5 asp.net-membership sitecore

我需要实现这样一个功能.它需要工作,以便在您上次更改密码后x天,然后当您登录时收到一条消息,说明您的密码已过期,请输入新密码并确认新密码

您是否有任何想法/建议如何以正确的方式做到这一点?

Mar*_*lak 5

您可以使用以下方法将自己的处理器添加为loggingin管道的第一个处理器Process:

public void Process(LoggingInArgs args)
{
    MembershipUser user = Membership.GetUser(args.Username);
    if (user != null)
    {
        DateTime date = user.LastPasswordChangedDate;
        if ((DateTime.Now - date).TotalDays > maxDaysWithoutPasswordChange)
        {
            HttpContext.Current.Response.Redirect("/passwordchangepage");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会将需要更改密码的所有用户重定向到/passwordchangepage网址.在此页面上创建旧密码和新密码的表单.

在提交表单时执行密码更改:

MembershipUser user = Membership.GetUser(username);
user.ChangePassword(oldPassword, newPassword);
Run Code Online (Sandbox Code Playgroud)