public string GetSecretCookie(string key = "") { AES256Cipher objEnc = new AES256Cipher(); //string ENC_key = "abcdefghijklmnopqrstuvwxyz123456"; // string ENC_key = Config.GetConfigValue("AES256_KEY"); //암호화에 필요한 기본키값을 가져온다. return objEnc.AES_decrypt(this.GetCookie(key), ENC_key); }
//---------------------------- session --------------------------------------- public void SetSecretSession(string key = "", string value = "") { AES256Cipher objEnc = new AES256Cipher(); //string ENC_key = "abcdefghijklmnopqrstuvwxyz123456"; // string ENC_key = Config.GetConfigValue("AES256_KEY"); //암호화에 필요한 기본키값을 가져온다. this.SetSession(key, objEnc.AES_encrypt(value, ENC_key)); }
public ActionResult LoginProc(string permissionCode = "", string loginID = "", string loginPW = "") { string HTTPS_DOMAIN = Config.GetConfigValue("HTTPS_PROTOCOL") + Request.Url.Authority; //ex)https://www.lenscloth.kr string HTTP_DOMAIN = Config.GetConfigValue("HTTP_PROTOCOL") + Request.Url.Authority; //ex)http://www.lenscloth.kr this.ViewBag.HTTPS_DOMAIN = HTTPS_DOMAIN; this.ViewBag.HTTP_DOMAIN = HTTP_DOMAIN; UrlHelper urlHelper = new UrlHelper(this.ControllerContext.RequestContext); // https -> http 로 변경 적용시에 //1.넘어온 인자값 확인 if (loginID == "" || loginPW == "") { return Content("<script type='text/javascript'>alert('아이디 or 패스워드가 전달되지 않았습니다.');history.go(-1);</script>"); } //2.비밀번호 암호화 AES256Cipher objEnc = new AES256Cipher(); string M_PWD_MD5_HASH = objEnc.MD5Hash(loginPW); //MD5: PW -> M_PWD_MD5_HASH string M_PWD_SHA256_HASH = objEnc.SHA256Hash(M_PWD_MD5_HASH); //MD5: M_PWD_MD5_HASH -> M_PWD_SHA256_HASH //3.DB조회 //MemberLogin M = new MemberLogin(); //result = _MemberService.MemberLogin(permissionCode, loginID, loginPW // , System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] // , ConstValues.GCODE_PLATFORM_WEB // , Request.UserAgent); SPMemberLogin_Result result = _MemberService.MemberLogin(permissionCode, loginID, M_PWD_SHA256_HASH , System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] , ConstValues.GCODE_PLATFORM_WEB , Request.UserAgent); if (result == null) { return Content("<script type='text/javascript'>alert('일치하는 정보가 없습니다.');history.go(-1);</script>"); } else { //SELECT memId, memName // , memGradeCode // , dbo.FNGetCodeGlobalName(memGradeCode) AS memGradeCodeNM // , memLastAccessIP, memMainIP // , memStatusCode // , dbo.FNGetCodeGlobalName(memStatusCode) AS memStatusCodeNM // , ISNULL(@lastPwdChangeDate, CONVERT(CHAR(10), regDate, 23)) AS lastPwdChangeDate --이력이 없으면 가입일로 대체 //--1.비밀번호 변경일이 기준(프로젝트마다 다를수 있음)일이 지났는가 //--2.로그인기록이 5회이상인 회원부터 접속하던 아이피가 패턴과 일치하는가 //--3.전혀 다른 국가 혹은 지역에서 로그인 하였는가(이건 어떻게 해야하지 ? ㅠㅠ) //--4.회원이 유휴상태이거나(휴면계정 등) 비밀번호를 겁나 틀렸던 이력이 있는가(여기는 추가작업이 필요함) //회원 상태확인 if (string.Compare(result.memStatusCode, ConstValues.GCODE_MEMSTATUS_OK) == 0) { //로그인 세션 세팅 CookieSessionStore cookiesession = new CookieSessionStore(); cookiesession.SetSecretSession("memId", result.memId); cookiesession.SetSecretSession("memName", result.memName); cookiesession.SetSecretSession("memGradeCode", result.memGradeCode); cookiesession.SetSecretSession("memGradeCodeNM", result.memGradeCodeNM); } else { string resultMessage = string.Empty; if (string.Compare(result.memStatusCode, ConstValues.GCODE_MEMSTATUS_WAITJOIN) == 0) { resultMessage = "가입승인 대기중인 회원이십니다, 승인절차를 완료해주시기 바랍니다."; } else if (string.Compare(result.memStatusCode, ConstValues.GCODE_MEMSTATUS_RETIRE) == 0) { resultMessage = "탈퇴한 회원입니다."; } else if (string.Compare(result.memStatusCode, ConstValues.GCODE_MEMSTATUS_SLEEP) == 0) { resultMessage = "휴면계정 상태입니다, 관리자(" + ConstValues.lensclothAdminEmail + "에게 문의해주시기 바랍니다."; } else { resultMessage = "알수없는 에러입니다, 관리자(" + ConstValues.lensclothAdminEmail + "에게 문의해주시기 바랍니다."; } return Content("<script type='text/javascript'>alert('" + resultMessage + "');history.go(-1);</script>"); } } //https -> http 로 변경 적용시 //UrlHelper urlHelper = new UrlHelper(this.ControllerContext.RequestContext); return Redirect(urlHelper.Action("Index", "Home", null, "http")); }
public ActionResult EditPasswordProc(string permissionCode, CommonModel param, MemberDTO dto) { //파라미터가 없는 접근을 차단 if (!NoParamValueCheck(permissionCode) || !NoParamValueCheck(dto.memId)) { return RedirectToAction("NoParameterValue", "Home"); } //넘어온 인자값 확인 if (dto.memPassword != Request.Params["memPassword2"]) { return Content("<script type='text/javascript'>alert('비밀번호/비밀번호 확인 이 일치하지 않습니다.');history.go(-1);</script>"); } param.SearchField = Request.Params["SearchField"]; param.SearchKeyword = Request.Params["SearchKeyword"]; int result; dto.regIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; //비밀번호 암호화 string noneHashPwd = dto.memPassword; AES256Cipher objEnc = new AES256Cipher(); string M_PWD_MD5_HASH = objEnc.MD5Hash(noneHashPwd); //MD5: PW -> M_PWD_MD5_HASH string M_PWD_SHA256_HASH = objEnc.SHA256Hash(M_PWD_MD5_HASH); //MD5: M_PWD_MD5_HASH -> M_PWD_SHA256_HASH dto.memPassword = M_PWD_SHA256_HASH; _MemberService.MemberUpdatePassword(permissionCode, param, dto, out result); //http://blog.i6020345.com/life-cycle-of-tempdata-in-asp-net-mvc/ TempData["resultNum"] = result; TempData["commonModelParam"] = param; return RedirectToAction("ViewInfo", new { memId = dto.memId, Page = Request.Params["Page"] }); }