Web用户管理之修改密码
此页面为WebControl
alterpassword.ascx
<%@ Control Language="c#" AutoEventWireup="false"
Codebehind="alterpassword.ascx.cs" Inherits="WebApplication1.control.alterpassword"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<LINK href="../style/css.css" type="text/css" rel="stylesheet">
<form id="form_alterpassword" method="post" runat="server">
<table id="table1" cellSpacing="0" cellPadding="0" width="600" align="center" border="0">
<tr>
<td class="contexttitle" vAlign="bottom" align="center" height="100">修改密码
<span id="Message" runat="server"></span></td>
</tr>
<tr>
<td>
<table cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
<tr>
<td align="center">用户名<label id="LableUser" runat="server"></label>
</td>
</tr>
<tr>
<td align="center">原密码
<asp:textbox id="TextBoxPassPre" Runat="server" MaxLength="16" TextMode="Password">
</asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator1"
runat="server" ErrorMessage="请填写" ControlToValidate="TextBoxPassPre">
</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center">新密码
<asp:textbox id="TextBoxPassNew" Runat="server" MaxLength="16" TextMode="Password">
</asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator2"
runat="server" ErrorMessage="请填写"
ControlToValidate="TextBoxPassNew"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center">确认密码
<asp:textbox id="TextBoxPassNewConfirm" Runat="server" MaxLength="16" TextMode="Password">
</asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator3"
runat="server" ErrorMessage="请填写"
ControlToValidate="TextBoxPassNewConfirm"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center"><font color="blue">请记住您的密码</font></td>
</tr>
<tr>
<td align="center"><asp:button id="Buttonsubmit" Runat="server" Width="100"
Text="修改"></asp:button></td>
</tr>
<tr>
<td vAlign="middle" align="center" height="220">
<P><FONT color="#0000ff"><asp:comparevalidator id="CompareValidator1"
runat="server" ErrorMessage="两次输入的新密码不一致,请重新输入"
ControlToValidate="TextBoxPassNewConfirm"
ControlToCompare="TextBoxPassNew"></asp:comparevalidator></FONT></P>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

alterpassword.ascx.cs
namespace WebApplication1.control
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;

/// <summary>
/// alterpassword 的摘要说明。
/// </summary>
public class alterpassword : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button Buttonsubmit;
protected System.Web.UI.WebControls.TextBox TextBoxPassPre;
protected System.Web.UI.HtmlControls.HtmlGenericControl LableUser;
protected System.Web.UI.WebControls.TextBox TextBoxPassNew;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
protected System.Web.UI.WebControls.TextBox TextBoxPassNewConfirm;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator3;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Data.SqlClient.SqlConnection sqlConnection1;
protected System.Data.SqlClient.SqlCommand sqlCommand1;
protected System.Web.UI.HtmlControls.HtmlGenericControl Message;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(string.Empty==((control.User)(this.Session["user"])).UserName)
{
System.Configuration.AppSettingsReader asr=new System.Configuration.AppSettingsReader();
string strURLPre=((string)(asr.GetValue("urllocation",typeof(string))));
this.Response.Redirect(strURLPre+"index.aspx",true);
this.Response.End();
}
}

Web 窗体设计器生成的代码

private void Buttonsubmit_Click(object sender, System.EventArgs e)
{
string strUser=((control.User)(this.Session["user"])).UserName;
string strPassPre=this.TextBoxPassPre.Text.Trim();
Encoding ascii=Encoding.ASCII;
byte[] data=ascii.GetBytes(strPassPre);
System.Security.Cryptography.MD5 md5=
new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] result=md5.ComputeHash(data);
string pwdmd5=Convert.ToBase64String(result);
this.sqlCommand1.CommandText="select * from tbuser where username='"+
strUser+"' and userpwd='"+pwdmd5+"'";
try
{
this.sqlConnection1.Open();
SqlDataReader dr=this.sqlCommand1.ExecuteReader();
if(dr.HasRows)
{
dr.Read();
System.Data.SqlTypes.SqlGuid guid=new System.Data.SqlTypes.SqlGuid(dr["id"].ToString());
this.sqlConnection1.Close();
data=ascii.GetBytes(this.TextBoxPassNew.Text.Trim());
result=md5.ComputeHash(data);
pwdmd5=Convert.ToBase64String(result);
this.sqlCommand1.CommandText="Update tbuser Set userpwd='"+pwdmd5+"' Where id='"+guid+"'";
this.sqlConnection1.Open();
this.sqlCommand1.ExecuteNonQuery();
this.Message.InnerHtml="<br><font size='4' color='blue'>修改成功</font>";
}
else
{
this.Message.InnerHtml="<br><font size='4' color='red'>原密码错误,密码不能修改</font>";
}
}
catch(SqlException Ex)
{
this.Message.InnerHtml="<br><font size='4' color='red'>错误:"+Ex.Message+"</font>";
}
finally
{
this.sqlCommand1.Dispose();
this.sqlConnection1.Close();
}
}
}
}

Ja注:
数据库中的tbuser表结构,请参看
Web用户管理之用户注册 http://www.cnblogs.com/ja/articles/31239.aspx
alterpassword.ascx
<%@ Control Language="c#" AutoEventWireup="false"Codebehind="alterpassword.ascx.cs" Inherits="WebApplication1.control.alterpassword"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<LINK href="../style/css.css" type="text/css" rel="stylesheet">
<form id="form_alterpassword" method="post" runat="server">
<table id="table1" cellSpacing="0" cellPadding="0" width="600" align="center" border="0">
<tr>
<td class="contexttitle" vAlign="bottom" align="center" height="100">修改密码<span id="Message" runat="server"></span></td>
</tr>
<tr>
<td>
<table cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
<tr>
<td align="center">用户名<label id="LableUser" runat="server"></label>
</td>
</tr>
<tr>
<td align="center">原密码
<asp:textbox id="TextBoxPassPre" Runat="server" MaxLength="16" TextMode="Password"></asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator1"
runat="server" ErrorMessage="请填写" ControlToValidate="TextBoxPassPre">
</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center">新密码
<asp:textbox id="TextBoxPassNew" Runat="server" MaxLength="16" TextMode="Password"></asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator2"
runat="server" ErrorMessage="请填写"
ControlToValidate="TextBoxPassNew"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center">确认密码
<asp:textbox id="TextBoxPassNewConfirm" Runat="server" MaxLength="16" TextMode="Password"></asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator3"
runat="server" ErrorMessage="请填写"
ControlToValidate="TextBoxPassNewConfirm"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center"><font color="blue">请记住您的密码</font></td>
</tr>
<tr>
<td align="center"><asp:button id="Buttonsubmit" Runat="server" Width="100"Text="修改"></asp:button></td>
</tr>
<tr>
<td vAlign="middle" align="center" height="220">
<P><FONT color="#0000ff"><asp:comparevalidator id="CompareValidator1"runat="server" ErrorMessage="两次输入的新密码不一致,请重新输入"
ControlToValidate="TextBoxPassNewConfirm"
ControlToCompare="TextBoxPassNew"></asp:comparevalidator></FONT></P>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
alterpassword.ascx.cs
namespace WebApplication1.control
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;
/// <summary>
/// alterpassword 的摘要说明。
/// </summary>
public class alterpassword : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button Buttonsubmit;
protected System.Web.UI.WebControls.TextBox TextBoxPassPre;
protected System.Web.UI.HtmlControls.HtmlGenericControl LableUser;
protected System.Web.UI.WebControls.TextBox TextBoxPassNew;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
protected System.Web.UI.WebControls.TextBox TextBoxPassNewConfirm;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator3;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Data.SqlClient.SqlConnection sqlConnection1;
protected System.Data.SqlClient.SqlCommand sqlCommand1;
protected System.Web.UI.HtmlControls.HtmlGenericControl Message;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(string.Empty==((control.User)(this.Session["user"])).UserName)
{
System.Configuration.AppSettingsReader asr=new System.Configuration.AppSettingsReader();
string strURLPre=((string)(asr.GetValue("urllocation",typeof(string))));
this.Response.Redirect(strURLPre+"index.aspx",true);
this.Response.End();
}
}
Web 窗体设计器生成的代码
private void Buttonsubmit_Click(object sender, System.EventArgs e)
{
string strUser=((control.User)(this.Session["user"])).UserName;
string strPassPre=this.TextBoxPassPre.Text.Trim();
Encoding ascii=Encoding.ASCII;
byte[] data=ascii.GetBytes(strPassPre);
System.Security.Cryptography.MD5 md5=new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] result=md5.ComputeHash(data);
string pwdmd5=Convert.ToBase64String(result);
this.sqlCommand1.CommandText="select * from tbuser where username='"+
strUser+"' and userpwd='"+pwdmd5+"'";
try
{
this.sqlConnection1.Open();
SqlDataReader dr=this.sqlCommand1.ExecuteReader();
if(dr.HasRows)
{
dr.Read();
System.Data.SqlTypes.SqlGuid guid=new System.Data.SqlTypes.SqlGuid(dr["id"].ToString());
this.sqlConnection1.Close();
data=ascii.GetBytes(this.TextBoxPassNew.Text.Trim());
result=md5.ComputeHash(data);
pwdmd5=Convert.ToBase64String(result);
this.sqlCommand1.CommandText="Update tbuser Set userpwd='"+pwdmd5+"' Where id='"+guid+"'";
this.sqlConnection1.Open();
this.sqlCommand1.ExecuteNonQuery();
this.Message.InnerHtml="<br><font size='4' color='blue'>修改成功</font>";
}
else
{
this.Message.InnerHtml="<br><font size='4' color='red'>原密码错误,密码不能修改</font>";
}
}
catch(SqlException Ex)
{
this.Message.InnerHtml="<br><font size='4' color='red'>错误:"+Ex.Message+"</font>";
}
finally
{
this.sqlCommand1.Dispose();
this.sqlConnection1.Close();
}
}
}
}
Ja注:
数据库中的tbuser表结构,请参看
Web用户管理之用户注册 http://www.cnblogs.com/ja/articles/31239.aspx


浙公网安备 33010602011771号