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));
        }
Beispiel #3
0
        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"));
        }
Beispiel #4
0
        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"] });
        }