/// <summary> /// 檢核目前的UserID是否已被鎖住 /// </summary> /// <returns>True:帳戶被鎖住;False:帳戶沒有被鎖住</returns> private bool CheckUserIDIsLock(string userID) { Vista.SEC.Information.UserLoginStatusInfo uls = new Vista.SEC.Information.UserLoginStatusInfo(); uls.UserID = userID; uls.Load(); if (uls.ErrFlag) { if (uls.IsLock) { #region 寫入登入錯誤資料 Vista.SEC.Information.UserLoginLogInfo InfoFailLog = new Vista.SEC.Information.UserLoginLogInfo(); InfoFailLog.UserID = userID; InfoFailLog.SystemID = GetSystemID(userID); InfoFailLog.SessionID = Session.SessionID; InfoFailLog.IPAddress = Request.UserHostAddress; InfoFailLog.IsSuccess = "N"; InfoFailLog.LoginDate = DateTime.Now; InfoFailLog.Insert(); #endregion ScriptManager.RegisterStartupScript(this, GetType(), "LockAlert", "alert('您的帳號已被鎖定,請到解鎖功能進行解鎖!');", true); return(true); } } return(false); }
/// <summary> /// 2010.12.21 判斷帳密輸入錯誤次數,若錯誤第二次則提示訊息 /// 2012.3月 檢核資料庫錯誤紀錄,錯誤四次鎖定帳號 /// </summary> private void LogonFailedCountCheck() { Vista.SEC.Information.UserLoginStatusInfo uls = new Vista.SEC.Information.UserLoginStatusInfo(); uls.UserID = txtUserID.Text.Trim(); uls.Load(); //取得UserLoginStatus資料表內是否有目前登入的使用者登入失敗紀錄 if (uls.ErrFlag) //有目前使用者登入失敗的紀錄 { //判斷該使用者的帳戶是否被鎖住或是登入失敗紀錄已達3次(本次登入失敗是第4次紀錄,登入失敗第4次將會鎖住帳戶) if (uls.IsLock || uls.ErrorTimes == 3) { //判斷帳戶鎖住的IsLock是否已被更新為True;否則更新IsLock為True if (!uls.IsLock) { uls.UserID = txtUserID.Text.Trim(); uls.ErrorTimes = 4; uls.IsLock = true; uls.Update(); } ScriptManager.RegisterStartupScript(this, GetType(), "LockAlert", "alert('您的帳號已被鎖定,請到解鎖功能進行解鎖');", true); } else { //更新登入失敗次數的紀錄 uls.UserID = txtUserID.Text.Trim(); uls.ErrorTimes = uls.ErrorTimes + 1; uls.IsLock = false; uls.Update(); ScriptManager.RegisterStartupScript(this, GetType(), "LockAlert", "alert('使用者ID或密碼無效,請在試一次。\\n(Invalid Bank ID or Password. Please try again)');", true); } } else //目前登入的使用者帳戶為第1次登入失敗 { //插入登入失敗的紀錄 uls.UserID = txtUserID.Text.Trim(); uls.ErrorTimes = 1; uls.IsLock = false; uls.Insert(); ScriptManager.RegisterStartupScript(this, GetType(), "LockAlert", "alert('使用者ID或密碼無效,請在試一次。\\n(Invalid Bank ID or Password. Please try again)');", true); //if (Session["LogonFailedUserID"] != null) //{ // if (Session["LogonFailedUserID"].ToString() == txtUserID.Text.Trim()) //同一錯誤帳號 // { // Session["LogonFailedCount"] = Convert.ToInt32(Session["LogonFailedCount"]) + 1; // uls.UserID = Session["LogonFailedUserID"].ToString(); // uls.ErrorTimes = Convert.ToInt32(Session["LogonFailedCount"]); // uls.IsLock = false; // uls.Update(); // } // else //不同錯誤帳號,重計 // { // Session["LogonFailedUserID"] = txtUserID.Text.Trim(); // Session["LogonFailedCount"] = 1; // uls.UserID = Session["LogonFailedUserID"].ToString(); // uls.ErrorTimes = 1; // uls.IsLock = false; // uls.Insert(); // } // //提示 // if (Convert.ToInt32(Session["LogonFailedCount"]) == 4) // { // ScriptManager.RegisterStartupScript(this, GetType(), "LockAlert", "alert('帳密輸入錯誤已達三次,再輸入錯誤則可能導致此帳戶被鎖住!請注意!');", true); // } //} //else //第一次登入失敗 //{ // Session["LogonFailedUserID"] = txtUserID.Text.Trim(); // Session["LogonFailedCount"] = 1; // uls.UserID = Session["LogonFailedUserID"].ToString(); // uls.ErrorTimes = 1; // uls.IsLock = false; // uls.Insert(); //} } }