Example #1
0
    /// <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);
    }
Example #2
0
    /// <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();
            //}
        }
    }