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 

posted on 2004-08-08 16:45  Ja  阅读(2632)  评论(0)    收藏  举报

导航