public static MessageT SignOn(ProfileT profileT) { MessageT messageT = new MessageT(); messageT.IsSuccess = false; messageT.Message = ""; try { // DB 에서 사용자 인증 확인 profileT = new ProfileBiz().LoginCheck(profileT); if (profileT != null) { messageT.IsSuccess = true; // 확인된 사용자 인증 처리 System.Web.Security.FormsAuthentication.SetAuthCookie(profileT.UserSeCode + "_" + profileT.UserId, false); // 세션에는 사용자 기본정보만 저장 User = profileT; } } catch (Exception ex) { messageT.IsSuccess = false; messageT.Message = ex.Message; } return messageT; }
/* */ protected override bool AuthorizeCore(HttpContextBase httpContext) { IsLogin = base.AuthorizeCore(httpContext); //파라미터로 넘기는 menuCode를 받는다.[하나의 URL로 여러개의 메뉴를 다루는 곳에서 권한인증을 위해 설정] if (MenuCode == "PARAM_CHECK" || !String.IsNullOrEmpty(httpContext.Request["menuCode"])) { string checkMenuCode = httpContext.Request["menuCode"];//httpContext.Request.Params.Get("menuCode"); if (checkMenuCode != null) { MenuCode = checkMenuCode; } } httpContext.Items["MenuCode"] = MenuCode; // 메뉴코드 통계INSERT //new StatsBiz().ProcessStatsMenuCount(MenuCode); if (IsLogin == true) { bool bIsAuth = true; try { if (BootstrapCertification.User == null || BootstrapCertification.User.UserId == null) { BootstrapCertification.SignOut(); IsLogin = false; bIsAuth = false; } else { // MenuCode 에 해당하는 사용자의 권한목록을 DB에서 조회 UserMenuAuthSearchT userMenuAuthSearchT = new UserMenuAuthSearchT(); userMenuAuthSearchT.MenuCode = MenuCode; //메뉴ID userMenuAuthSearchT.UserId = BootstrapCertification.User.UserId; //사용자ID userMenuAuthSearchT.UserSeCode = BootstrapCertification.User.UserSeCode; //사용자구분코드 userMenuAuthSearchT.AuthorGroupList = BootstrapCertification.User.AuthorGroupList; //권한그룹목록 IList<string> authList = new ProfileBiz().SelectUserMenuAuthList(userMenuAuthSearchT); // 해당 메뉴의 사용권한을 저장 AuthT authT = new AuthT(); if (authList != null && authList.Count > 0) { authT.IsRead = authList.Contains("AC006001"); authT.IsCreate = authList.Contains("AC006002"); authT.IsUpdate = authList.Contains("AC006003"); authT.IsDelete = authList.Contains("AC006004"); authT.IsPrint = authList.Contains("AC006005"); authT.IsAdmin = authList.Contains("AC006006"); } httpContext.Items["AuthT"] = authT; // 체크할 기능권한이 있으면 Security //List<Authorize> authotizeList = Security.Security.AuthorizeTypeChange(authList.ToList()); List<Authorize> authotizeList = Security.AuthorizeTypeChange(authList.ToList()); if (CheckAuth != null) { // 권한이 존재하는지 체크 bool isAllHave = true; foreach (Authorize checkauthotize in CheckAuth) { bool isHave = false; foreach (Authorize userAuthotize in authotizeList) { if (checkauthotize == userAuthotize) { isHave = true; } } if (isHave == false) { isAllHave = false; } } if (isAllHave == false) { bIsAuth = false; } } if (bIsAuth) { //사용자접속통계 INSERT if (BootstrapCertification.User.UserSeCode == "AC007003" || BootstrapCertification.User.UserSeCode == "AC007004" || BootstrapCertification.User.UserSeCode == "AC007005") { //new EmplyrConectHistBiz().InsertEmplyrConectHist(MenuCode, BootstrapCertification.User); } } } } catch (Exception ex) { throw ex; } #if DEBUG if (BootstrapCertification.User.UserId == "system" || BootstrapCertification.User.UserId == "entr01") { bIsAuth = true; } #endif return bIsAuth; } else { if (IsLoginNeed == true) { return IsLogin; } else { return true; } } }