134 lines
3.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|