protected void Page_Load(object sender, EventArgs e) { MicroBSC.RolesBasedAthentication.SitePrincipal newUser = null; int login_status = LOGIN_STATUS; string user_id = USER_ID; string login_page_url = WebUtility.GetConfig("Login_Page_Url", "~/base/Login.aspx"); //int login_status = 3; //string user_id = "admin"; if (login_status > 0 && !user_id.Equals("-1")) { LOGIN_STATUS = -4; USER_ID = string.Empty; MicroBSC.Biz.Common.EmpInfos emp = new MicroBSC.Biz.Common.EmpInfos(); int emp_ref_id = emp.ValidateLogin(user_id); if (emp_ref_id.Equals(0)) { FormsAuthentication.SignOut(); Response.Redirect(login_page_url); return; } newUser = new MicroBSC.RolesBasedAthentication.SitePrincipal(user_id); Context.User = newUser; MicroBSC.RolesBasedAthentication.SiteIdentity gUserInfo = (MicroBSC.RolesBasedAthentication.SiteIdentity)Context.User.Identity; MicroBSC.Integration.CTL.Biz.Biz_Ctl_Common objCtlCommon = new MicroBSC.Integration.CTL.Biz.Biz_Ctl_Common(); objCtlCommon.AddConnectLog(Session.SessionID, gUserInfo.Emp_Ref_ID, gUserInfo.LoginID, gUserInfo.Emp_Name, Request.UserHostAddress, "BSC"); FormsAuthentication.RedirectFromLoginPage(user_id, false); Response.Redirect("~/base/Main.aspx"); } else { FormsAuthentication.SignOut(); Response.Redirect(login_page_url); } }
/// <summary> /// 로그인아이디와 패스워드로 인증를 확인한다. 로그인 시도 허용횟수 지정 /// </summary> /// <param name="userID">로그인 아이디</param> /// <param name="userPWD">로그인 패스워드</param> /// <param name="failcnt">로그인 시도 허용횟수</param> /// <returns>1:정상 인증, -1:허용횟수 초과, 0:잘못된 로그인 정보</returns> public static int ValidateLogin(string loginId, string passwd, int failcnt, out SitePrincipal newuser) { MicroBSC.Integration.COM.Biz.Biz_Com_Emp_Info bizEmpInfo = new MicroBSC.Integration.COM.Biz.Biz_Com_Emp_Info(); Biz.Common.EmpInfos emp = new Biz.Common.EmpInfos(); IDbConnection conn = DbAgentHelper.CreateDbConnection(); conn.Open(); IDbTransaction trx = conn.BeginTransaction(); int result = 0; newuser = null; try { DataTable dt_user_info = bizEmpInfo.Get_Emp_Login_Info(conn, trx, loginId); if (dt_user_info == null || dt_user_info.Rows.Count == 0) { //잘못된 사용자 ID result = 0; } else { //사용자 ID 존재 int user_ref_id = DataTypeUtility.GetToInt32(dt_user_info.Rows[0]["emp_ref_id"]); string user_passwd = DataTypeUtility.GetString(dt_user_info.Rows[0]["PASSWD"]); int user_failcnt = DataTypeUtility.GetToInt32(dt_user_info.Rows[0]["FAILCNT"]); if (user_failcnt < failcnt) { //로그인 시도 허용횟수 이내 if (user_passwd.Equals(passwd)) { //비밀번호 일치 result = 1; bizEmpInfo.Modify_Login_FailCnt(conn, trx, user_ref_id, 0, user_ref_id);//로그인 시도횟수 리셋 newuser = new SitePrincipal(user_ref_id); } else { //비밀번호 불일치 result = 0; } } else { //로그인 시도 허용횟수 초과 result = -1; } } trx.Commit(); } catch (Exception ex) { trx.Rollback(); result = 0; } finally { conn.Close(); } return(result); }
private void DoAction(int LOGIN_STATUS, string USER_ID) { //페이지 열릴대마다 로그 기록 writeLog(string.Format("{0} : DoAction() START", Request.PhysicalPath)); MicroBSC.RolesBasedAthentication.SitePrincipal newUser = null; int login_status = LOGIN_STATUS; string user_id = USER_ID; string login_page_url = WebUtility.GetConfig("Login_Page_Url", "~/base/Login.aspx"); if (WebUtility.GetConfig("SSL", "N").Equals("Y")) { if (WebUtility.GetConfig("SSLLIVE", "N").Equals("Y")) { login_page_url = WebUtility.GetConfig("SSL.LoginPageLive", "~/base/Login.aspx"); } else { login_page_url = WebUtility.GetConfig("SSL.LoginPage", "~/base/Login.aspx"); } } //int login_status = 3; //string user_id = "admin"; if (login_status > 0 && !user_id.Equals("-1")) { LOGIN_STATUS = -4; USER_ID = string.Empty; MicroBSC.Biz.Common.EmpInfos emp = new MicroBSC.Biz.Common.EmpInfos(); int emp_ref_id = emp.ValidateLogin(user_id); if (emp_ref_id.Equals(0)) { FormsAuthentication.SignOut(); Response.Redirect(login_page_url); return; } newUser = new MicroBSC.RolesBasedAthentication.SitePrincipal(user_id); Context.User = newUser; MicroBSC.RolesBasedAthentication.SiteIdentity gUserInfo = (MicroBSC.RolesBasedAthentication.SiteIdentity)Context.User.Identity; if (WebUtility.GetConfig("LOG_SIGNON", "N").Equals("Y")) { MicroBSC.Integration.CTL.Biz.Biz_Ctl_Common objCtlCommon = new MicroBSC.Integration.CTL.Biz.Biz_Ctl_Common(); objCtlCommon.AddConnectLog(Session.SessionID, gUserInfo.Emp_Ref_ID, gUserInfo.LoginID, gUserInfo.Emp_Name, Request.UserHostAddress, "BSC"); } //페이지 열릴대마다 로그 기록 writeLog(string.Format("{0} : DoAction() END", Request.PhysicalPath)); FormsAuthentication.RedirectFromLoginPage(user_id, false); Response.Redirect("~/base/Main.aspx"); } else { //페이지 열릴대마다 로그 기록 writeLog(string.Format("{0} : DoAction() END", Request.PhysicalPath)); FormsAuthentication.SignOut(); Response.Redirect(login_page_url); } }