تغییر کلمه عبور در asp.net

در این مقاله میخواهیم در asp.net کاربر بتواند با وارد کردن کلمه عبور قبلی خود کلمه عبور خود را تغییر دهد.

تغییر کلمه عبور در asp.net

علاوه بر تغییر کلمه عبور میخواهیم ورودی های کاربر را کنترل و پیام های مناسب نمایش دهیم:

1- کلمه عبور نباید کمتر از پنج کاراکتر باشد

2-کلمه عبور وارد شده با تکرار کلمه عبور باید یکسان باشد

3-کلمه عبور جدید و کلمه عبور قبلی نباید یکسان باشند

4-کلمه عبور قبلی وارد شده معتبر نیست

5-کلمه عبور با موفقیت تغییر یافت

 یک پایگاه داده به نام LoginDB و یک جدول به نام Users با فیلد های زیر میسازیم:

سپس چند رکورد در آن درج میکنیم:

از جعبه ابزار خود یک کنترل ChangePassword به صفحه خود اضافه کنید و آنرا به شکل زیر ویرایش کنید:


<asp:ChangePassword ID="ChangePassword1" runat="server" OnChangingPassword="OnChangingPassword"
    RenderOuterTable="false" NewPasswordRegularExpression="^[\s\S]{5,}$" NewPasswordRegularExpressionErrorMessage="Password must be of minimum 5 characters." CancelDestinationPageUrl = "~/Home.aspx">
</asp:ChangePassword>
<br />
<asp:Label ID="lblMessage" runat="server" />

به صفحه ChangePassword.aspx.cs بروید و کد زیر را بنویسید:


protected void OnChangingPassword(object sender, LoginCancelEventArgs e)
{
    if (!ChangePassword1.CurrentPassword.Equals(ChangePassword1.NewPassword, StringComparison.CurrentCultureIgnoreCase))
    {
        int rowsAffected = 0;
        string query = "UPDATE [Users] SET [Password] = @NewPassword WHERE [Username] = @Username AND [Password] = @CurrentPassword";
        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand(query))
            {
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Parameters.AddWithValue("@Username", this.Page.User.Identity.Name);
                    cmd.Parameters.AddWithValue("@CurrentPassword", ChangePassword1.CurrentPassword);
                    cmd.Parameters.AddWithValue("@NewPassword", ChangePassword1.NewPassword);
                    cmd.Connection = con;
                    con.Open();
                    rowsAffected = cmd.ExecuteNonQuery();
                    con.Close();
                }
            }
            if (rowsAffected > 0)
            {
                lblMessage.ForeColor = Color.Green;
                lblMessage.Text = "Password has been changed successfully.";
            }
            else
            {
                lblMessage.ForeColor = Color.Red;
                lblMessage.Text = "Password does not match with our database records.";
            }
        }
    }
    else
    {
        lblMessage.ForeColor = Color.Red;
        lblMessage.Text = "Old Password and New Password must not be equal.";
    }
 
    e.Cancel = true;
}

به فایل webconfig خود بروید و در قسمت system.web و تنظیم زیر را اضافه کنیدد:


<pages controlRenderingCompatibilityVersion = "3.5"></pages>

حالا برنامه رو اجرا کنید حالات مختلف رو به صورت تصویری خواهید دید:

فایل های ضمیمه