首次登录后如何强制用户更改密码?

Hom*_*mam 10 c# asp.net redirect login change-password

我想强制用户在首次登录后更改密码.现在,我应该在哪里将重定向代码放到ChangePassword页面?

  • 如果我把它放在Page_Load默认页面中,用户可以移动到任何页面,因为他是经过身份验证的.
  • 如果我把它放在Page_LoadMaster页面中,ChangePassword页面使用相同的母版页,它将进入无限循环的重定向.

    我虽然忽略了重定向,如果它Page是Master页面中的ChagePassword页面,我发现这个答案说:

    这听起来像个坏主意.主人的想法是它不应该关心哪个页面,因为这是每个页面的所有常用代码.

任何建议!

Len*_*rri 5

在这里,你是一个经过全面测试的解决方案

protected void LoginButton_Click(object sender, EventArgs e)
{
    /****note: UserName and Password are textbox fields****/

    if (Membership.ValidateUser(UserName.Text, Password.Text))
    {
        MembershipUser user = Membership.GetUser(UserName.Text);
        if (user == null)
        {
           FailureText.Text = "Invalid username. Please try again.";
           return;
        }
        if (user.IsLockedOut)
           user.UnlockUser();

        /* this is the interesting part for you */
        if (user.LastPasswordChangedDate == user.CreationDate) //if true, that means user never changed their password before
        {
            //TODO: add your change password logic here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 略微修改版本以考虑数据库保存时间.`var timeSpan = user.LastPasswordChangedDate - user.CreationDate;``if(timeSpan.Minutes <1)` (2认同)

A_N*_*lsi 0

您可以处理登录控件的以下事件,

\n\n

\xe2\x80\xa2LoggedIn \n\xe2\x80\xa2LoggingIn

\n\n

祝你好运,我希望这会有所帮助。

\n