⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changepassword.aspx.cs

📁 基于.net(c#+sql)人事管理系统
💻 CS
字号:
using System;
using System.Security.Cryptography;
using System.Text;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using DBUtils;

namespace BlueHill.EmployeeInfo
{
	/// <summary>
	/// ChangePassword 的摘要说明。
	/// </summary>
	public class ChangePassword : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Panel pnlPageFix;
		protected System.Web.UI.WebControls.TextBox txtOldPwd;
		protected System.Web.UI.WebControls.TextBox txtNewPwd;
		protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
		protected System.Web.UI.WebControls.CompareValidator CompareValidator2;
		protected System.Web.UI.WebControls.TextBox txtNewPwdAgain;
		protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
		protected System.Web.UI.WebControls.Button btnChange;
		protected System.Web.UI.WebControls.Label lblInfo;
	
		/// <summary>
		/// 网页初始化时执行该方法。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if ( IsPostBack )
			{
				//如果网页是第一次生成时,执行如下操作:

				//校验用户在界面控件中的输入是否合法。
				//有关校验用户输入以及输入验证控件的更多信息,可参看课本第七章。
				Validate();

			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.btnChange.Click += new System.EventHandler(this.btnChange_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		/// <summary>
		/// 当用户单击“修改密码”按钮时,该方法将验证用户的旧密码和新密码,并更新数据库。
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnChange_Click(object sender, System.EventArgs e)
		{
			//校验用户输入的数据是否合法。
			Validate();

			if ( IsValid )
			{
				//如果用户输入合法,则继续执行以下操作:
        
				int iEmpID;

				//检查用户的登录信息是否丢失,丢失则显示出错信息。
				if ( Session["EmployeeID"] == null )
				{
					lblInfo.Text = "登录名丢失。";
					return;
				}

				//从 Session 中获取员工编号信息。
				iEmpID =int.Parse ( (string)Session["EmployeeID"]);

				//从数据库中获取正确的密码。
				Byte[] arHashedSavedPassword=null;
				int iRetValue;
				iRetValue = DBUtils.EmployeeInfo.GetSavedPassword(iEmpID, ref arHashedSavedPassword);
            
				if ( iRetValue == (int)DBResult.Failed )
				{
					//数据库操作失败,说明该员工不存在,则显示出错信息。
					lblInfo.Text = "无法确定旧密码.";
					return;
				}

				//将用户输入的密码进行 Unicode 编码。
				UnicodeEncoding UE = new UnicodeEncoding();
				Byte[] arSuppliedPass = UE.GetBytes(txtOldPwd.Text.Trim());

				//将上一步得到的 Unicode 编码进行哈希处理。
				SHA1Managed SHhash = new SHA1Managed();
				Byte[] arHashSuppliedPass = SHhash.ComputeHash(arSuppliedPass);

				//判断用户输入的密码和数据库中的密码两者的哈希值是否相等。
				bool bHashesEqual = true;
				int x;
				for ( x = 0; x<=arHashSuppliedPass.Length - 1; x++)
				{
					if ( arHashSuppliedPass[x] != arHashedSavedPassword[x] )
					{
						bHashesEqual = false;
						break;
					}
				}
            

				if ( bHashesEqual )
				{
					//如果两者相等,则说明用户输入的旧密码是正确的,同时用新密码更新数据库。
                
					//将新密码进行哈希处理。
					Byte[] arNewPassword = UE.GetBytes(txtNewPwd.Text);
					Byte[] arHashNewPassword = SHhash.ComputeHash(arNewPassword);
                
					//将新密码的哈希值保存到数据库中。
					iRetValue = DBUtils.EmployeeInfo.ChangePassword(iEmpID, arHashNewPassword);
					if ( iRetValue == (int)DBResult.Failed )
					{
						//如果数据库操作失败,显示提示信息。
						lblInfo.Text = "密码修改失败.";
						return;
					}

					lblInfo.Text = "密码修改成功!";
				}
				else
				{
					//两者不相等,说明用户输入的旧密码不正确,显示提示信息。
					lblInfo.Text = "旧密码不正确!";
				}
			}
		}

		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -