public ActionResult <ApiResultObjectModel> SettingLoad() { ApiResultReady rrResult = new ApiResultReady(this); ApiResultObjectModel armResult = new ApiResultObjectModel(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Root); if (typePC == ManagementClassCheckType.Ok) { //세팅 로드 GlobalStatic.Setting_DataProc.Setting_Load(); } else { //에러 rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); } return(rrResult.ToResult()); }
[Authorize]//OAuth2 인증 설정 public ActionResult <TestModel02> Test02(int nData) { //리턴 보조 ApiResultReady rrResult = new ApiResultReady(this); //리턴용 모델 TestModel02 armResult = new TestModel02(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); if (0 <= nData) {//양수다. armResult.nTest001 = nData; armResult.sTest002 = "성공 했습니다! : " + cm.id; } else { rrResult.InfoCode = "1"; rrResult.Message = "'nData'에 음수가 입력되었습니다."; } return(rrResult.ToResult(armResult)); }
public ActionResult <SettingListResultModel> SettingList() { ApiResultReady rrResult = new ApiResultReady(this); SettingListResultModel armResult = new SettingListResultModel(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Root); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //세팅 리스트 armResult.SettingList = db1.Setting_Data .OrderBy(m => m.Number) .ToArray(); }//end using db1 } else { //에러 rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); } return(rrResult.ToResult(armResult)); }
[Authorize]//OAuth2 인증 설정 public ActionResult <SignInSimpleResultModel> AccessToUserInfo() { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); //리턴용 모델 SignInSimpleResultModel tmResult = new SignInSimpleResultModel(); //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //검색된 유저 UserSignInfoModel user = GlobalStatic.UserList.List .FirstOrDefault(m => m.ID == cm.id_int); if (null != user) {//유저 정보가 있다. tmResult.id = user.ID; tmResult.email = user.Email; } else {//유저 정보가 없다. armResult.InfoCode = "1"; armResult.Message = "엑세스 토큰이 유효하지 않습니다.[로그인 필요]"; } return(armResult.ToResult(tmResult)); }
public ActionResult <ApiResultBaseModel> SignEmailCheck(string sEmail) { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { User findUser = db1.User .Where(m => m.SignEmail == sEmail) .FirstOrDefault(); if (null == findUser) {//성공 armResult.InfoCode = "0"; } else {//이미 있음 armResult.InfoCode = "-1"; armResult.Message = "이미 사용중인 아이디 입니다."; } } return(armResult.ToResult(null)); }
public ActionResult <SignInResultModel> SignIn( [FromForm] string sEmail , [FromForm] string sPW) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //로그인 처리용 모델 SignInResultModel armResult = new SignInResultModel(); rrResult.ResultObject = armResult; //유저 검색 UserSignInfoModel user = GlobalStatic.UserList .List.FirstOrDefault(m => m.Email == sEmail && m.Password == sPW); if (user != null) { //에러가 없다. rrResult.Message = user.Email; armResult.access_token = "dasdflcc090fkkc"; armResult.refresh_token = "das54340fl8fd"; } else { rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } return(rrResult.ToResult()); }
public ActionResult <SignInModel> SignIn( [FromForm] string sEmail , [FromForm] string sPW) { ApiResultReady armResult = new ApiResultReady(this); //로그인 처리용 모델 SignInModel smResult = new SignInModel(); armResult.ResultObject = smResult; if (sEmail == "*****@*****.**" && sPW == "1111") { smResult.Complete = true; //이 프로젝트에서는 사인인한 유저의 정보를 어디에도 저장하지 않는다. //그래서 토큰으로 유저를 구분할 수 있게 만든다. smResult.Token = string.Format("{0}▩{1}" , sEmail , Guid.NewGuid().ToString()); } else { armResult.InfoCode = "-1"; armResult.Message = "일치하는 정보가 없습니다."; smResult.Complete = false; } return(armResult.ToResult()); }
public ActionResult <BoardListResultModel> List() { ApiResultReady rrResult = new ApiResultReady(this); BoardListResultModel armResult = new BoardListResultModel(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { armResult.List = db1.Board.ToList(); }//end using db1 } else { //에러 rrResult.InfoCode = typePC.ToString(); } return(rrResult.ToResult()); }
public ActionResult <ApiResultBaseModel> Edit( [FromForm] long nBoardId , [FromForm] string sTitle , [FromForm] short nShowCount , [FromForm] BoardStateType typeBoardState , [FromForm] BoardFacultyType typeBoardFaculty , [FromForm] BoardAuthorityType nAuthorityDefault , [FromForm] string sMemo) { ApiResultReady armResult = new ApiResultReady(this); //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { Board findBoard = db1.Board .Where(m => m.idBoard == nBoardId) .FirstOrDefault(); if (null != findBoard) { findBoard.Title = sTitle; findBoard.ShowCount = nShowCount; findBoard.BoardState = typeBoardState; findBoard.BoardFaculty = (BoardFacultyType)typeBoardFaculty; findBoard.AuthorityDefault = (BoardAuthorityType)nAuthorityDefault; findBoard.Memo = sMemo; db1.SaveChanges(); //게시판 정보 json으로 저장 GlobalStatic.FileProc.WWW_Json_BoardInfo(); } else { armResult.InfoCode = typePC.ToString(); armResult.Message = "대상이 없습니다."; } }//end using db1 } else { //에러 armResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); armResult.Message = "권한이 없습니다."; } return(armResult.ToResult()); }
public ActionResult <string> SignOut( [FromForm] string sRefreshToken) { ApiResultReady rrResult = new ApiResultReady(this); //사인아웃에 필요한 작업을 한다. //임시로 아이디를 넘긴다. return(rrResult.ToResult()); }
public ActionResult <ApiResultBaseModel> TestPostAdd( [FromForm] int nBoardId) { ApiResultReady rrResult = new ApiResultReady(this); DateTime dtNow = DateTime.Now; int nCount = 0; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { for (int i = 0; i < 300; ++i) { ++nCount; //포스트 BoardPost newBP = new BoardPost(); newBP.idBoard = nBoardId; newBP.idUser = cm.id_int; newBP.Title = string.Format("테스트용 데이터 {0} - {1} ", nCount, dtNow); newBP.WriteDate = dtNow; db1.BoardPost.Add(newBP); db1.SaveChanges(); //컨탠츠 BoardContent newBC = new BoardContent(); newBC.idBoard = newBP.idBoard; newBC.idBoardPost = newBP.idBoardPost; newBC.Content = string.Format("테스트용 내용 {0} - {1} ", nCount, dtNow); db1.BoardContent.Add(newBC); db1.SaveChanges(); } }//end using db1 } else { //에러 rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); } return(rrResult.ToResult()); }
public ActionResult <ApiResultBaseModel> Call() { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); //리턴용 모델 ApiResultBaseModel tmResult = new ApiResultBaseModel(); armResult.Message = "성공"; return(armResult.ToResult(tmResult)); }
public ActionResult <SignInResultModel> SignIn( [FromForm] string sEmail , [FromForm] string sPW) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //로그인 처리용 모델 SignInResultModel armResult = new SignInResultModel(); rrResult.ResultObject = armResult; //유저 검색 UserSignInfoModel user = GlobalStatic.UserList .List.FirstOrDefault(m => m.Email == sEmail && m.Password == sPW); if (user != null) { //토큰 요청 TokenResponse tr = null; //토큰 요청 tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result; if (true == tr.IsError) {//에러가 있다. rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } else {//에러가 없다. //로그인 되어있는 유저정보 저장 GlobalStatic.SignInList.Add(user.ID, tr.RefreshToken); armResult.id = user.ID; armResult.email = user.Email; armResult.lv = 0; armResult.access_token = tr.AccessToken; armResult.refresh_token = tr.RefreshToken; } } else { rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } return(rrResult.ToResult()); }
public ActionResult <ApiResultObjectModel> SettingSet( [FromForm] Setting_Data s_dTossData) { ApiResultReady rrResult = new ApiResultReady(this); ApiResultObjectModel armResult = new ApiResultObjectModel(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Root); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //수정할 개체 선택 Setting_Data s_dSelect = db1.Setting_Data .Where(m => m.idSetting_Data == s_dTossData.idSetting_Data) .FirstOrDefault(); if (null != s_dSelect) { //데이터 수정 s_dSelect.Number = s_dTossData.Number; s_dSelect.Name = s_dTossData.Name; s_dSelect.OpenType = s_dTossData.OpenType; s_dSelect.ValueData = s_dTossData.ValueData; s_dSelect.Description = s_dTossData.Description; //DB 저장 db1.SaveChanges(); } else { rrResult.InfoCode = "1"; rrResult.Message = "수정할 대상이 없습니다."; } }//end using db1 } else { //에러 rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); } return(rrResult.ToResult(armResult)); }
public ActionResult <string> SignOut( [FromForm] string sToken) { ApiResultReady rrResult = new ApiResultReady(this); //토큰의 앞이 유저 정보다. string[] sCutToken = sToken.Split("▩"); //정보를 넣어 준다. rrResult.Message = sCutToken[0]; //임시로 아이디를 넘긴다. return(rrResult.ToResult()); }
public ActionResult <ApiResultBaseModel> Create( [FromForm] string sTitle , [FromForm] BoardStateType typeBoardState , [FromForm] BoardAuthorityType nAuthorityDefault , [FromForm] string sMemo) { ApiResultReady rrResult = new ApiResultReady(this); DateTime dtNow = DateTime.Now; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { Board newBoard = new Board(); newBoard.Title = sTitle; newBoard.BoardState = typeBoardState; newBoard.AuthorityDefault = (BoardAuthorityType)nAuthorityDefault; //기능 설정 newBoard.BoardFaculty |= BoardFacultyType.ShowCount_Server; newBoard.ShowCount = 10; newBoard.Memo = sMemo; newBoard.CreateDate = dtNow; db1.Board.Add(newBoard); db1.SaveChanges(); //게시판 정보 json으로 저장 GlobalStatic.FileProc.WWW_Json_BoardInfo(); }//end using db1 } else { //에러 rrResult.InfoCode = ApiResultType.PermissionCheckError.ToString(); rrResult.Message = "권한이 없습니다."; } return(rrResult.ToResult()); }
[Authorize]//OAuth2 인증 설정 public ActionResult <string> SignOut( [FromForm] string sRefreshToken) { ApiResultReady rrResult = new ApiResultReady(this); //API 호출 시간 DateTime dtNow = DateTime.Now; //인증 정보에서 유저 정보 추출 var identity = (ClaimsIdentity)User.Identity; ClaimModel cm = new ClaimModel(identity.Claims); //사인아웃 시도 기록 GlobalSign.LogAdd_DB( 1 , ModelDB.UserSignLogType.SignOut , cm.id_int , string.Format("SignOut 시도 : {0}", cm.email)); using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //기존 로그인한 유저 검색 UserSignIn[] arrSL = db1.UserSignIn .Where(m => m.idUser == cm.id_int) .ToArray(); //기존 로그인한 유저 정보 제거 db1.UserSignIn.RemoveRange(arrSL); //db 적용 db1.SaveChanges(); } //리플레시 토큰 제거 if ((null != sRefreshToken) && (string.Empty != sRefreshToken)) { TokenRevocationResponse trr = GlobalStatic.TokenProc .RevocationTokenAsync(sRefreshToken) .Result; } //로컬 인증 쿠키 삭제 요청 HttpContext.SignOutAsync(); //임시로 아이디를 넘긴다. return(rrResult.ToResult()); }
public ActionResult <string> SignOut( [FromForm] string sToken) { ApiResultReady armResult = new ApiResultReady(this); ApiResultBaseModel arbm = new ApiResultBaseModel(); //토큰의 앞이 유저 정보다. string[] sCutToken = sToken.Split("▩"); //정보를 넣어 준다. armResult.Message = sCutToken[0]; //임시로 아이디를 넘긴다. return(armResult.ToResult(arbm)); }
public ActionResult <ApiResultBaseModel> AuthEdit( [FromForm] long nBoardAuthority , [FromForm] int nAuthority , [FromForm] int nAuthState , [FromForm] string sMemo) { ApiResultReady rrResult = new ApiResultReady(this); DateTime dtNow = DateTime.Now; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //수정할 권한 찾기 BoardAuthority findBA = db1.BoardAuthority .Where(m => m.idBoardAuthority == nBoardAuthority) .FirstOrDefault(); if (null == findBA) { rrResult.InfoCode = "-1"; rrResult.Message = "수정할 대상을 찾지 못했습니다."; } else { findBA.Authority = (BoardAuthorityType)nAuthority; findBA.AuthState = (BoardAuthorityStateType)nAuthState; findBA.Memo = sMemo; findBA.EditDate = dtNow; db1.SaveChanges(); } }//end using db1 } return(rrResult.ToResult()); }
public ActionResult <BoardAuthListResultModel> AuthList(long nBoardId) { ApiResultReady rrResult = new ApiResultReady(this); BoardAuthListResultModel armResult = new BoardAuthListResultModel(); rrResult.ResultObject = armResult; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { IQueryable <BoardAuthority> iqBAuth = db1.BoardAuthority .Where(m => m.idBoard == nBoardId); armResult.List = (from bauth in iqBAuth join user in db1.UserInfo on bauth.idUser equals user.idUser select new BoardAuthItemModel { idBoardAuthority = bauth.idBoardAuthority, idBoard = bauth.idBoard, idUser = bauth.idUser, Authority = bauth.Authority, AuthState = bauth.AuthState, UserName = user.ViewName, SignEmail = "", Memo = bauth.Memo, EditDate = bauth.EditDate }) .ToList(); }//end using db1 } return(rrResult.ToResult()); }
[Authorize]//OAuth2 인증 설정 public ActionResult <SignInSimpleResultModel> AccessToUserInfo() { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); //리턴용 모델 SignInSimpleResultModel tmResult = new SignInSimpleResultModel(); //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //검색된 유저 User findUser = null; using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //유저 검색 findUser = db1.User .FirstOrDefault(m => m.idUser == cm.id_int); if (null != findUser) {//유저 정보가 있다. UserInfo fundUI = db1.UserInfo .Where(m => m.idUser == findUser.idUser) .FirstOrDefault(); tmResult.idUser = findUser.idUser; tmResult.Email = findUser.SignEmail; tmResult.ViewName = fundUI.ViewName; tmResult.MgtClass = fundUI.MgtClass; } else {//유저 정보가 없다. armResult.InfoCode = "1"; armResult.Message = "엑세스 토큰이 유효하지 않습니다.[로그인 필요]"; } } return(armResult.ToResult(tmResult)); }
public ActionResult <SignInResultModel> RefreshToAccess( [FromForm] string sRefreshToken) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //엑세스 토큰 갱신용 모델 SignInResultModel armResult = new SignInResultModel(); rrResult.ResultObject = armResult; //토큰 갱신 요청 TokenResponse tr = GlobalStatic.TokenProc.RefreshTokenAsync(sRefreshToken).Result; if (true == tr.IsError) {//에러가 있다. rrResult.InfoCode = "1"; rrResult.Message = "토큰 갱신에 실패하였습니다."; } else {//에러가 없다. //유저 정보를 받는다. UserInfoResponse inrUser = GlobalStatic.TokenProc.UserInfoAsync(tr.AccessToken).Result; //유저 정보 추출 ClaimModel cm = new ClaimModel(inrUser.Claims); //로그인 되어있는 유저정보 저장 GlobalStatic.SignInList.Add(cm.id_int, tr.RefreshToken); //모델에 입력 armResult.id = cm.id_int; armResult.email = cm.email; armResult.access_token = tr.AccessToken; armResult.refresh_token = tr.RefreshToken; } return(rrResult.ToResult(armResult)); }
[Authorize]//OAuth2 인증 설정 public ActionResult <string> SignOut( [FromForm] int nID , [FromForm] string sRefreshToken) { ApiResultReady rrResult = new ApiResultReady(this); //사인아웃에 필요한 작업을 한다. //사용자 GlobalStatic.SignInList.Delete(nID, sRefreshToken); //리플레시 토큰 제거 if ((null != sRefreshToken) && (string.Empty != sRefreshToken)) { TokenRevocationResponse trr = GlobalStatic.TokenProc.RevocationTokenAsync(sRefreshToken).Result; } //로컬 인증 쿠키 삭제 요청 HttpContext.SignOutAsync(); //임시로 아이디를 넘긴다. return(rrResult.ToResult()); }
public ActionResult <TestModel01> Test01(int nData, string sData) { //리턴 보조 ApiResultReady rrResult = new ApiResultReady(this); //리턴용 모델 TestModel01 armResult = new TestModel01(); rrResult.ResultObject = armResult; if (0 <= nData) {//양수다. armResult.nTest = nData; armResult.sTest = sData; } if (false == rrResult.IsSuccess()) { rrResult.InfoCode = "1"; rrResult.Message = "'nData'에 음수가 입력되었습니다."; } return(rrResult.ToResult(armResult)); }
public ActionResult <ApiResultBaseModel> ViewNameCheck(string sViewName) { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { UserInfo findUserInfo = db1.UserInfo .Where(m => m.ViewName == sViewName) .FirstOrDefault(); if (null == findUserInfo) {//성공 armResult.InfoCode = "0"; } else { //이미 있음 if (findUserInfo.idUser == cm.id_int) { //내 아이디다. //내가 쓰는 내 닉네임은 중복검사에서 제외이므로 //성공으로 취급한다. armResult.InfoCode = "0"; } else { armResult.InfoCode = "-1"; armResult.Message = "이미 사용중인 닉네임 입니다."; } } } return(armResult.ToResult(null)); }
public ActionResult <ApiResultBaseModel> SignUp( [FromForm] string sEmail , [FromForm] string sViewName , [FromForm] string sPassword) { //리턴 보조 ApiResultReady armResult = new ApiResultReady(this); DateTime dtNow = DateTime.Now; //인증 정보에서 유저 정보 추출 //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { User findUser = db1.User .Where(m => m.SignEmail == sEmail) .FirstOrDefault(); //표시 이름 검색 UserInfo findViewName = db1.UserInfo .Where(m => m.ViewName == sViewName) .FirstOrDefault(); if ("0" == armResult.InfoCode && null != findUser) {//이미 있음 armResult.InfoCode = "-1"; armResult.Message = "이미 사용중인 아이디 입니다."; } if ("0" == armResult.InfoCode && null != findViewName) { armResult.InfoCode = "-3"; armResult.Message = "표시이름을 사용하는 사용자가 있습니다."; } if ("0" == armResult.InfoCode) {//성공 //사인인 정보 추가 User newUser = new User(); newUser.SignEmail = sEmail; newUser.Password = sPassword; db1.User.Add(newUser); db1.SaveChanges(); //사용자 정보 추가 UserInfo newUI = new UserInfo(); newUI.idUser = newUser.idUser; newUI.ViewName = newUser.SignEmail; newUI.ViewName = sViewName; newUI.MgtClass = ManagementClassType.User; newUI.SignUpDate = dtNow; db1.UserInfo.Add(newUI); db1.SaveChanges(); } } return(armResult.ToResult(null)); }
public ActionResult <SignInResultModel> SignIn( [FromForm] string sEmail , [FromForm] string sPW) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //로그인 처리용 모델 SignInResultModel rmResult = new SignInResultModel(); rrResult.ResultObject = rmResult; //API 호출 시간 DateTime dtNow = DateTime.Now; //검색된 유저 User findUser = null; using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //유저 검색 findUser = db1.User .FirstOrDefault(m => m.SignEmail == sEmail && m.Password == sPW); } if (findUser != null) { //토큰 요청 TokenResponse tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result; if (true == tr.IsError) {//에러가 있다. rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } else {//에러가 없다. using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //기존 로그인한 유저 검색 UserSignIn[] arrSL = db1.UserSignIn .Where(m => m.idUser == findUser.idUser) .ToArray(); //기존 로그인한 유저 정보 제거 db1.UserSignIn.RemoveRange(arrSL); //db 적용 db1.SaveChanges(); //사인인 한 유저의 정보 UserInfo findUI = db1.UserInfo .Where(m => m.idUser == findUser.idUser) .FirstOrDefault(); //로그인 되어있는 유저정보 저장 UserSignIn slItem = new UserSignIn(); slItem.idUser = findUser.idUser; slItem.RefreshToken = tr.RefreshToken; slItem.SignInDate = dtNow; slItem.RefreshDate = dtNow; //기존 로그인한 유저 정보 제거 db1.UserSignIn.Add(slItem); //db 적용 db1.SaveChanges(); //로그인한 유저에게 전달할 정보 rmResult.idUser = findUser.idUser; rmResult.Email = findUser.SignEmail; rmResult.ViewName = findUI.ViewName; rmResult.MgtClass = findUI.MgtClass; rmResult.access_token = tr.AccessToken; rmResult.refresh_token = tr.RefreshToken; } } } else { rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } return(rrResult.ToResult(rmResult)); }
public ActionResult <SignInResultModel> RefreshToAccess( [FromForm] string sRefreshToken) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //엑세스 토큰 갱신용 모델 SignInResultModel armResult = new SignInResultModel(); rrResult.ResultObject = armResult; //API 호출 시간 DateTime dtNow = DateTime.Now; //토큰 갱신 요청 TokenResponse tr = GlobalStatic.TokenProc.RefreshTokenAsync(sRefreshToken).Result; if (true == tr.IsError) {//에러가 있다. rrResult.InfoCode = "1"; rrResult.Message = "토큰 갱신에 실패하였습니다."; } else {//에러가 없다. //유저 정보를 받는다. UserInfoResponse inrUser = GlobalStatic.TokenProc.UserInfoAsync(tr.AccessToken).Result; //유저 정보 추출 ClaimModel cm = new ClaimModel(inrUser.Claims); using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //기존 로그인한 유저 검색 UserSignIn itemUSI = db1.UserSignIn .Where(m => m.idUser == cm.id_int) .FirstOrDefault(); if (null == itemUSI) {//기존 로그인 정보가 없다, //이러면 강제로 토큰이 상실된 것일 수 있다. rrResult.InfoCode = "1"; rrResult.Message = "토큰 갱신에 실패하였습니다."; } else { //로그인 되어있는 유저정보 수정 itemUSI.RefreshToken = tr.RefreshToken; itemUSI.RefreshDate = dtNow; //db 적용 db1.SaveChanges(); //사인인 한 유저의 정보 UserInfo findUI = db1.UserInfo .Where(m => m.idUser == cm.id_int) .FirstOrDefault(); //유저에게 전달할 정보 만들기 armResult.idUser = cm.id_int; armResult.Email = cm.email; armResult.ViewName = findUI.ViewName; armResult.MgtClass = findUI.MgtClass; armResult.access_token = tr.AccessToken; armResult.refresh_token = tr.RefreshToken; } } } return(rrResult.ToResult(armResult)); }
public ActionResult <ApiResultBaseModel> AuthAdd( [FromForm] long nBoardId , [FromForm] long nUserId) { ApiResultReady rrResult = new ApiResultReady(this); DateTime dtNow = DateTime.Now; //유저 정보 추출 ClaimModel cm = new ClaimModel(((ClaimsIdentity)User.Identity).Claims); //이 유저가 해당 관리 등급이 있는지 확인한다. ManagementClassCheckType typePC = GlobalStatic.MgtA.MgtClassCheck(cm.id_int , ManagementClassType.Admin); if (typePC == ManagementClassCheckType.Ok) { using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //게시판 찾기 Board findBoard = db1.Board .Where(m => m.idBoard == nBoardId) .FirstOrDefault(); //유저 찾기 User findUser = db1.User .Where(m => m.idUser == nUserId) .FirstOrDefault(); //이미 권한을 가지고 있는지 확인 BoardAuthority findBA = db1.BoardAuthority .Where(m => m.idBoard == nBoardId && m.idUser == nUserId) .FirstOrDefault(); //게시판 있는지 확인 if ("0" == rrResult.InfoCode) { if (null == findBoard) { //게시판을 찾지 못했다. rrResult.InfoCode = "-1"; rrResult.Message = "게시판을 찾을 수 없습니다."; } } if ("0" == rrResult.InfoCode) { if (null == findUser) { //유저를 찾지 못했다. rrResult.InfoCode = "-2"; rrResult.Message = "유저를 찾을 수 없습다."; } } if ("0" == rrResult.InfoCode) { if (null != findBA) { //이미 권한을 가지고 있다. rrResult.InfoCode = "-3"; rrResult.Message = "이미 권한을 가지고 있습니다."; } } if ("0" == rrResult.InfoCode) { //유저 정보 UserInfo findUI = db1.UserInfo .Where(m => m.idUser == nUserId) .FirstOrDefault(); //추가할 권한 정보 BoardAuthority newBA = new BoardAuthority(); newBA.idBoard = findBoard.idBoard; newBA.idUser = findUI.idUser; //게시판의 기본권을 먼저 준다. newBA.Authority = findBoard.AuthorityDefault; newBA.AuthState = BoardAuthorityStateType.Use; newBA.Memo = string.Empty; newBA.EditDate = dtNow; db1.BoardAuthority.Add(newBA); db1.SaveChanges(); } } //end using db1 } //end typePC return(rrResult.ToResult()); }
public ActionResult <SignInResultModel> SignIn( [FromForm] string sEmail , [FromForm] string sPW) { //결과용 ApiResultReady rrResult = new ApiResultReady(this); //로그인 처리용 모델 SignInResultModel rmResult = new SignInResultModel(); rrResult.ResultObject = rmResult; //API 호출 시간 DateTime dtNow = DateTime.Now; //사인인 시도 기록 GlobalSign.LogAdd_DB( 1 , ModelDB.UserSignLogType.SignIn , 0 , string.Format("SignIn 시도 - {0}, {1}", sEmail, sPW)); //검색된 유저 User findUser = null; using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //유저 검색 findUser = db1.User .FirstOrDefault(m => m.SignEmail == sEmail && m.Password == sPW); } if (findUser != null) { //토큰 요청 TokenResponse tr = GlobalStatic.TokenProc.RequestTokenAsync(sEmail, sPW).Result; if (true == tr.IsError) {//에러가 있다. rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } else {//에러가 없다. using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext()) { //기존 로그인한 유저 검색 UserSignIn[] arrSL = db1.UserSignIn .Where(m => m.idUser == findUser.idUser) .ToArray(); //기존 로그인 토큰 제거 foreach (UserSignIn itemUSI in arrSL) { //리플레시 토큰 제거 if ((null != itemUSI.RefreshToken) && (string.Empty != itemUSI.RefreshToken)) { TokenRevocationResponse trr = GlobalStatic.TokenProc .RevocationTokenAsync(itemUSI.RefreshToken) .Result; } }//end foreach itemUSI //기존 로그인한 유저 정보 제거 db1.UserSignIn.RemoveRange(arrSL); //db 적용 db1.SaveChanges(); //사인인 한 유저의 정보 UserInfo findUI = db1.UserInfo .Where(m => m.idUser == findUser.idUser) .FirstOrDefault(); //로그인 되어있는 유저정보 저장 UserSignIn slItem = new UserSignIn(); slItem.idUser = findUser.idUser; slItem.RefreshToken = tr.RefreshToken; slItem.SignInDate = dtNow; slItem.RefreshDate = dtNow; //기존 로그인한 유저 정보 제거 db1.UserSignIn.Add(slItem); //db 적용 db1.SaveChanges(); //로그인한 유저에게 전달할 정보 rmResult.idUser = findUser.idUser; rmResult.Email = findUser.SignEmail; rmResult.ViewName = findUI.ViewName; rmResult.MgtClass = findUI.MgtClass; rmResult.access_token = tr.AccessToken; rmResult.refresh_token = tr.RefreshToken; //성공 로그 //사인인 성공 기록 GlobalSign.LogAdd_DB( 1 , ModelDB.UserSignLogType.SignIn , findUser.idUser , string.Format("SignIn 성공 - {0}", sEmail)); }//end using db1 } } else { rrResult.InfoCode = "1"; rrResult.Message = "아이디나 비밀번호가 틀렸습니다."; } return(rrResult.ToResult(rmResult)); }