Files
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

134 lines
3.7 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Wellan.Data;
using Wellan.Common;
using System.Data.Common;
/// <summary>
/// 使用者變更密碼
/// </summary>
public partial class forms_BPSN_UNBPSNP : Wellan.Web.UI.WUserControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
SetClientFocus(txtOldPassword);
}
protected void btnOK_Click(object sender, EventArgs e)
{
lbErrMsg.Text = "";
if (txtNewPassword.Text == "")
{
lbErrMsg.Text = GetString("BPSN.NEWEMPTY");
}
else if (txtConfirmNewPassword.Text == "")
{
lbErrMsg.Text = GetString("BPSN.CONFEMPTY");
}
else if (txtNewPassword.Text != txtConfirmNewPassword.Text)
{
lbErrMsg.Text = GetString("BPSN.NEWDIFFER");
}
lbErrMsg.Visible = lbErrMsg.Text != "";
if (lbErrMsg.Visible)
return;
// 驗證舊密碼是否正確
WQuery query = new WQuery(ConnectionType, ConnectionString);
DataTable ds;
if (!UserId.ToUpper().StartsWith("Z"))
ds = query.Select("SELECT BPAWD FROM BPSNView WHERE BPENO='" + UserId + "'");
else
ds = query.Select("SELECT BPPWD AS BPAWD FROM BPAP WHERE BPENO='" + UserId + "'");
string bpawd = ds.Rows[0]["BPAWD"].ToString();
if (bpawd == "\u007f\u007f\u007f\u007f")
bpawd = "";
else
bpawd = WGuard1.KeyDec(bpawd);
if (txtOldPassword.Text != bpawd)
{
lbErrMsg.Text = GetString("BPSN.OLDERR");
lbErrMsg.Visible = true;
return;
}
// 驗證新密碼是否合乎格式
string newPass = WGuard1.KeyEnc(txtNewPassword.Text);
if (WGuard1.KeyDec(newPass) != txtNewPassword.Text)
{
lbErrMsg.Text = GetString("BPSN.NEWERR");
lbErrMsg.Visible = true;
return;
}
// 寫入新密碼
DbCommand cmd = query.NewCommand();
DbConnection conn = query.NewConnection();
cmd.Connection = conn;
if (!UserId.ToUpper().StartsWith("Z"))
{
cmd.CommandText = "UPDATE BPSN SET BPAWD=@BPAWD,TRDAT=GETDATE(), TRMOD='UPDATE', TRUSR=@TRUSR WHERE BPENO=@BPENO";
}
else
{
cmd.CommandText = "UPDATE BPAP SET BPPWD=@BPAWD,TRDAT=GETDATE(), TRMOD='UPDATE', TRUSR=@TRUSR WHERE BPENO=@BPENO";
}
cmd.Parameters.Add(query.NewParameter("@BPAWD", newPass));
cmd.Parameters.Add(query.NewParameter("@TRUSR", UserId));
cmd.Parameters.Add(query.NewParameter("@BPENO", UserId));
conn.Open();
DbTransaction tran = conn.BeginTransaction();
cmd.Transaction = tran;
try
{
int i = cmd.ExecuteNonQuery();
if (i == 1)
{
tran.Commit();
MultiView1.ActiveViewIndex = 1;
Session["NOPASSWORD"] = "FALSE";
return;
}
else
{
tran.Rollback();
lbErrMsg.Text = GetString("BPSN.NEWERR");
lbErrMsg.Visible = true;
return;
}
}
catch
{
tran.Rollback();
lbErrMsg.Text = GetString("BPSN.NEWERR");
lbErrMsg.Visible = true;
}
finally
{
conn.Close();
cmd.Dispose();
}
}
}