udpate login.html

This commit is contained in:
backuppc
2025-07-10 14:36:05 +09:00
parent 43526a26ec
commit 26cb328f8f
31 changed files with 866 additions and 543 deletions

View File

@@ -39,23 +39,43 @@ namespace Project.Web.Controllers
}
[HttpGet]
public HttpResponseMessage GetUserGroups()
{
var dt = DBM.GetUserGroups();
var txtjson = JsonConvert.SerializeObject(dt, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
var resp = new HttpResponseMessage()
{
Content = new StringContent(
txtjson,
System.Text.Encoding.UTF8,
"application/json")
};
return resp;
}
[HttpGet]
public HttpResponseMessage GetholyUser()
{
var sql = string.Empty;
sql = $"select uid,cate,sdate,edate,HolyReason " +
$"from EETGW_HolydayRequest " +
$"where gcode = '{FCOMMON.info.Login.gcode}'" +
$"and conf = 1 and HolyDays > 0 and sdate <= GETDATE() and edate >= GETDATE()";
if (info.Login.gcode == null)
info.Login.gcode = "EET1P";
sql = sql.Replace("{gcode}", FCOMMON.info.Login.gcode);
sql = $" select uid,cate,sdate,edate,HolyReason,Users.name " +
$" from EETGW_HolydayRequest INNER JOIN " +
$" Users ON EETGW_HolydayRequest.uid = Users.id " +
$" where EETGW_HolydayRequest.gcode = @gcode" +
$" and conf = 1 and HolyDays > 0 and sdate <= GETDATE() and edate >= GETDATE()";
//sql = sql.Replace("{gcode}", FCOMMON.info.Login.gcode);
var cs = Properties.Settings.Default.gwcs;// "Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D!";
var cn = new System.Data.SqlClient.SqlConnection(cs);
var cmd = new System.Data.SqlClient.SqlCommand(sql, cn);
cmd.Parameters.AddWithValue("gcode", FCOMMON.info.Login.gcode);
var da = new System.Data.SqlClient.SqlDataAdapter(cmd);
var dt = new System.Data.DataTable();
da.Fill(dt);
@@ -77,10 +97,9 @@ namespace Project.Web.Controllers
};
return resp;
}
[HttpGet]
public HttpResponseMessage Index()
{

View File

@@ -1,299 +1,349 @@
//using System;
//using System.Linq;
//using System.Net.Http;
//using System.Web.Http;
//using Newtonsoft.Json;
//using System.Collections.Generic;
using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;
using Newtonsoft.Json;
using System.Collections.Generic;
using FCOMMON;
//namespace Project.Web.Controllers
//{
// // 로그인 요청 모델
// public class LoginRequest
// {
// public string UserId { get; set; }
// public string Password { get; set; }
// public bool RememberMe { get; set; }
// }
namespace Project.Web.Controllers
{
// 로그인 요청 모델
public class LoginRequest
{
public string Gcode { get; set; }
public string UserId { get; set; }
public string Password { get; set; }
public bool RememberMe { get; set; }
}
// // 로그인 응답 모델
// public class LoginResponse
// {
// public bool Success { get; set; }
// public string Message { get; set; }
// public string RedirectUrl { get; set; }
// public object UserData { get; set; }
// }
// 로그인 응답 모델
public class LoginResponse
{
public bool Success { get; set; }
public string Message { get; set; }
public string RedirectUrl { get; set; }
public object UserData { get; set; }
}
// public class HomeController : BaseController
// {
// [HttpPost]
// public void Index([FromBody]string value)
// {
public class HomeController : BaseController
{
[HttpPost]
public void Index([FromBody]string value)
{
// }
}
// // PUT api/values/5
// public void Put(int id, [FromBody]string value)
// {
// }
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// // DELETE api/values/5
// public void Delete(int id)
// {
// }
// DELETE api/values/5
public void Delete(int id)
{
}
// [HttpGet]
// public string Test()
// {
// return "test";
// }
[HttpGet]
public string Test()
{
return "test";
}
// [HttpPost]
// public HttpResponseMessage Login([FromBody] LoginRequest request)
// {
// var response = new LoginResponse();
[HttpGet]
public string TestLogin()
{
return "HomeController Login Test - 접근 성공!";
}
// try
// {
// // 입력값 검증
// if (string.IsNullOrEmpty(request?.UserId) || string.IsNullOrEmpty(request?.Password))
// {
// response.Success = false;
// response.Message = "사용자 ID와 비밀번호를 입력해주세요.";
// return CreateJsonResponse(response);
// }
[HttpPost]
public HttpResponseMessage Login([FromBody] LoginRequest request)
{
var response = new LoginResponse();
// // TODO: 여기에 실제 데이터베이스 로그인 로직을 구현하세요
// // 예시: 데이터베이스에서 사용자 정보 확인
// bool isValidUser = ValidateUser(request.UserId, request.Password);
try
{
// 입력값 검증
if (string.IsNullOrEmpty(request?.Gcode) || string.IsNullOrEmpty(request?.UserId) || string.IsNullOrEmpty(request?.Password))
{
response.Success = false;
response.Message = "그룹코드/사용자ID/비밀번호를 입력해주세요.";
return CreateJsonResponse(response);
}
// if (isValidUser)
// {
// // 로그인 성공
// response.Success = true;
// response.Message = "로그인에 성공했습니다.";
// response.RedirectUrl = "/DashBoard";
// // 사용자 정보 설정 (세션 또는 쿠키)
// SetUserSession(request.UserId, request.RememberMe);
// // 사용자 데이터 반환
// response.UserData = new
// {
// UserId = request.UserId,
// LoginTime = DateTime.Now,
// RememberMe = request.RememberMe
// };
// }
// else
// {
// // 로그인 실패
// response.Success = false;
// response.Message = "사용자 ID 또는 비밀번호가 올바르지 않습니다.";
// }
// }
// catch (Exception ex)
// {
// response.Success = false;
// response.Message = "로그인 처리 중 오류가 발생했습니다: " + ex.Message;
// }
// TODO: 여기에 실제 데이터베이스 로그인 로직을 구현하세요
// 예시: 데이터베이스에서 사용자 정보 확인
bool isValidUser = ValidateUser(request.Gcode, request.UserId, request.Password);
// return CreateJsonResponse(response);
// }
if (isValidUser)
{
// 로그인 성공
response.Success = true;
response.Message = "로그인에 성공했습니다.";
response.RedirectUrl = "/DashBoard";
// [HttpPost]
// public HttpResponseMessage Logout()
// {
// var response = new LoginResponse();
// 사용자 정보 설정 (세션 또는 쿠키)
SetUserSession(request.Gcode, request.UserId, request.RememberMe);
// try
// {
// // TODO: 여기에 로그아웃 로직을 구현하세요
// // 예시: 세션 정리, 쿠키 삭제 등
// ClearUserSession();
// 사용자 데이터 반환
response.UserData = new
{
Gcode = request.Gcode,
UserId = request.UserId,
LoginTime = DateTime.Now,
RememberMe = request.RememberMe
};
}
else
{
// 로그인 실패
response.Success = false;
response.Message = "사용자 ID 또는 비밀번호가 올바르지 않습니다.";
}
}
catch (Exception ex)
{
response.Success = false;
response.Message = "로그인 처리 중 오류가 발생했습니다: " + ex.Message;
}
// response.Success = true;
// response.Message = "로그아웃되었습니다.";
// response.RedirectUrl = "/Login";
// }
// catch (Exception ex)
// {
// response.Success = false;
// response.Message = "로그아웃 처리 중 오류가 발생했습니다: " + ex.Message;
// }
return CreateJsonResponse(response);
}
// return CreateJsonResponse(response);
// }
[HttpPost]
public HttpResponseMessage Logout()
{
var response = new LoginResponse();
// [HttpGet]
// public HttpResponseMessage CheckLoginStatus()
// {
// var response = new LoginResponse();
try
{
// TODO: 여기에 로그아웃 로직을 구현하세요
// 예시: 세션 정리, 쿠키 삭제 등
ClearUserSession();
// try
// {
// // TODO: 여기에 로그인 상태 확인 로직을 구현하세요
// // 예시: 세션 또는 쿠키에서 사용자 정보 확인
// var currentUser = GetCurrentUser();
response.Success = true;
response.Message = "로그아웃되었습니다.";
response.RedirectUrl = "/Login";
}
catch (Exception ex)
{
response.Success = false;
response.Message = "로그아웃 처리 중 오류가 발생했습니다: " + ex.Message;
}
// if (currentUser != null)
// {
// response.Success = true;
// response.Message = "로그인된 상태입니다.";
// response.UserData = currentUser;
// }
// else
// {
// response.Success = false;
// response.Message = "로그인되지 않은 상태입니다.";
// response.RedirectUrl = "/Login";
// }
// }
// catch (Exception ex)
// {
// response.Success = false;
// response.Message = "로그인 상태 확인 중 오류가 발생했습니다: " + ex.Message;
// }
return CreateJsonResponse(response);
}
// return CreateJsonResponse(response);
// }
[HttpGet]
public HttpResponseMessage CheckLoginStatus()
{
var response = new LoginResponse();
// // 헬퍼 메서드들
// private bool ValidateUser(string userId, string password)
// {
// // TODO: 실제 데이터베이스 검증 로직을 여기에 구현하세요
// // 예시: 데이터베이스에서 사용자 정보 조회 및 비밀번호 검증
// var encpass = Pub.MakePasswordEnc(password.Trim());
try
{
// TODO: 여기에 로그인 상태 확인 로직을 구현하세요
// 예시: 세션 또는 쿠키에서 사용자 정보 확인
var currentUser = GetCurrentUser();
if (currentUser != null)
{
response.Success = true;
response.Message = "로그인된 상태입니다.";
response.UserData = currentUser;
}
else
{
response.Success = false;
response.Message = "로그인되지 않은 상태입니다.";
response.RedirectUrl = "/Login";
}
}
catch (Exception ex)
{
response.Success = false;
response.Message = "로그인 상태 확인 중 오류가 발생했습니다: " + ex.Message;
}
return CreateJsonResponse(response);
}
// 헬퍼 메서드들
private bool ValidateUser(string gcode, string userId, string password)
{
// TODO: 실제 데이터베이스 검증 로직을 여기에 구현하세요
// 예시: 데이터베이스에서 사용자 정보 조회 및 비밀번호 검증
var encpass = Pub.MakePasswordEnc(password.Trim());
var GInfo = DBM.GetUserGroup(gcode);
if (GInfo == null) return false;
var UGInfo = DBM.GetGroupUser(gcode, userId);
if (UGInfo == null) return false;
var UInfo = DBM.GetUserInfo(userId);
if (UInfo == null) return false;
return UInfo.password.Equals(encpass);
}
private void SetUserSession(string gcode, string userId, bool rememberMe)
{
// TODO: 세션 또는 쿠키에 사용자 정보 저장
// 예시: HttpContext.Session["UserId"] = userId;
// 예시: 쿠키 설정 (rememberMe가 true인 경우)
//데이터베이스에서 해당 정보를 찾아와서 처리해야한다
var GInfo = DBM.GetUserGroup(gcode);
var UGInfo = DBM.GetGroupUser(gcode, userId);
var UInfo = DBM.GetUserInfo(userId);
info.Login.no = userId;
info.Login.nameK = UInfo.name;
info.Login.dept = GInfo.name;
info.Login.level = UGInfo.level;
info.Login.email = UInfo.email;
info.Login.hp = UInfo.hp;
info.Login.tel = UInfo.tel;
info.Login.title = GInfo.name + "(" + UInfo.grade + ")";
info.NotShowJobReportview = Pub.setting.NotShowJobreportPRewView;
info.Login.gcode = gcode;// gcode;
info.Login.process = UInfo.id == "dev" ? "개발자" : UGInfo.Process;
info.Login.permission = UGInfo.level;
info.Login.gpermission = GInfo.perm;
info.ShowBuyerror = Pub.setting.Showbuyerror; //210625
// // 임시 테스트용 (실제로는 데이터베이스에서 확인)
// return userId == "admin" && password == "admin";
// }
// private void SetUserSession(string userId, bool rememberMe)
// {
// // TODO: 세션 또는 쿠키에 사용자 정보 저장
// // 예시: HttpContext.Session["UserId"] = userId;
// // 예시: 쿠키 설정 (rememberMe가 true인 경우)
// //데이터베이스에서 해당 정보를 찾아와서 처리해야한다
// FCOMMON.info.Login.no = userId;
// FCOMMON.info.Login.nameK = drUser.name;
// FCOMMON.info.Login.dept = cmbDept.Text;// userdr.dept;// cmbDept.Text;
// FCOMMON.info.Login.level = drGrpUser.level;
// FCOMMON.info.Login.email = drUser.email;
// FCOMMON.info.Login.nameE = drUser.nameE;
// FCOMMON.info.Login.hp = drUser.hp;
// FCOMMON.info.Login.tel = drUser.tel;
// FCOMMON.info.Login.title = drUser.dept + "(" + drUser.grade + ")";
// FCOMMON.info.NotShowJobReportview = Pub.setting.NotShowJobreportPRewView;
// //var gcode = FCOMMON.DBM.ExecuteScalar("select isnull(gcode,'NOGCODE') from UserGroup where dept ='" + cmbDept.Text + "'");
// var gperm = FCOMMON.DBM.ExecuteScalar("select isnull(permission,0) from UserGroup where dept ='" + cmbDept.Text + "'");
// FCOMMON.info.Login.gcode = gCode;// gcode;
// FCOMMON.info.Login.process = drUser.id == "dev" ? "개발자" : drGrpUser.Process;
// FCOMMON.info.Login.permission = 0;
// FCOMMON.info.Login.gpermission = int.Parse(gperm);
// //FCOMMON.info.datapath = Pub.setting.SharedDataPath;
// FCOMMON.info.ShowBuyerror = Pub.setting.Showbuyerror; //210625
//로그인기록저장
Pub.setting.lastid = userId;// tbID.Text.Trim();
Pub.setting.lastdpt = GInfo.name;
Pub.setting.lastgcode = GInfo.gcode;
Pub.setting.Save();
// }
}
// private void ClearUserSession()
// {
// // TODO: 세션 또는 쿠키에서 사용자 정보 삭제
// FCOMMON.info.Login.no = string.Empty;
// FCOMMON.info.Login.level = 0;
// FCOMMON.info.Login.gcode = string.Empty;
// FCOMMON.info.Login.permission = 0;
// FCOMMON.info.Login.gpermission = 0;
// Console.WriteLine("logout");
// }
private void ClearUserSession()
{
// TODO: 세션 또는 쿠키에서 사용자 정보 삭제
FCOMMON.info.Login.no = string.Empty;
FCOMMON.info.Login.level = 0;
FCOMMON.info.Login.gcode = string.Empty;
FCOMMON.info.Login.permission = 0;
FCOMMON.info.Login.gpermission = 0;
Console.WriteLine("logout");
}
// private object GetCurrentUser()
// {
// // TODO: 현재 로그인된 사용자 정보 반환
// // 예시: HttpContext.Session["UserId"]에서 사용자 정보 조회
// return null; // 임시로 null 반환
// }
private object GetCurrentUser()
{
// TODO: 현재 로그인된 사용자 정보 반환
// 예시: HttpContext.Session["UserId"]에서 사용자 정보 조회
if (string.IsNullOrEmpty(FCOMMON.info.Login.no)) return null;
else return FCOMMON.info.Login;
}
// private HttpResponseMessage CreateJsonResponse(object data)
// {
// var json = JsonConvert.SerializeObject(data, new JsonSerializerSettings
// {
// NullValueHandling = NullValueHandling.Ignore
// });
private HttpResponseMessage CreateJsonResponse(object data)
{
var json = JsonConvert.SerializeObject(data, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
// return new HttpResponseMessage()
// {
// Content = new StringContent(
// json,
// System.Text.Encoding.UTF8,
// "application/json")
// };
// }
return new HttpResponseMessage()
{
Content = new StringContent(
json,
System.Text.Encoding.UTF8,
"application/json")
};
}
// [HttpGet]
// public HttpResponseMessage Login()
// {
// // 직접 파일을 읽어서 반환
// var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "login.html");
// var contents = string.Empty;
[HttpGet]
public HttpResponseMessage Login()
{
// 직접 파일을 읽어서 반환
var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "login.html");
var contents = string.Empty;
// if (System.IO.File.Exists(filePath))
// {
// contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
// }
// else
// {
// // 파일이 없으면 404 에러 페이지 또는 기본 메시지
// contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
// }
if (System.IO.File.Exists(filePath))
{
contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
}
else
{
// 파일이 없으면 404 에러 페이지 또는 기본 메시지
contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
}
// //공용값 적용
// ApplyCommonValue(ref contents);
//공용값 적용
ApplyCommonValue(ref contents);
// var resp = new HttpResponseMessage()
// {
// Content = new StringContent(
// contents,
// System.Text.Encoding.UTF8,
// "text/html")
// };
var resp = new HttpResponseMessage()
{
Content = new StringContent(
contents,
System.Text.Encoding.UTF8,
"text/html")
};
// return resp;
// }
return resp;
}
// [HttpGet]
// public HttpResponseMessage Index()
// {
// // 직접 파일을 읽어서 반환
// var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "index.html");
// var contents = string.Empty;
[HttpGet]
public HttpResponseMessage Index()
{
// 직접 파일을 읽어서 반환
var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "index.html");
var contents = string.Empty;
// if (System.IO.File.Exists(filePath))
// {
// contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
// }
// else
// {
// // 파일이 없으면 404 에러 페이지 또는 기본 메시지
// contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
// }
if (System.IO.File.Exists(filePath))
{
contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
}
else
{
// 파일이 없으면 404 에러 페이지 또는 기본 메시지
contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
}
// //공용값 적용
// ApplyCommonValue(ref contents);
//공용값 적용
ApplyCommonValue(ref contents);
// var resp = new HttpResponseMessage()
// {
// Content = new StringContent(
// contents,
// System.Text.Encoding.UTF8,
// "text/html")
// };
var resp = new HttpResponseMessage()
{
Content = new StringContent(
contents,
System.Text.Encoding.UTF8,
"text/html")
};
// return resp;
// }
// }
//}
return resp;
}
[HttpGet]
public HttpResponseMessage GetPreviousLoginInfo()
{
try
{
// pub.setting에서 이전 로그인 정보 읽기
var previousLoginInfo = new
{
Gcode = Pub.setting.lastgcode ?? "",
UserId = Pub.setting.lastid ?? "",
Dept = Pub.setting.lastdpt ?? "",
RememberMe = false // 기본값으로 설정
};
return CreateJsonResponse(new
{
Success = true,
Data = previousLoginInfo
});
}
catch (Exception ex)
{
return CreateJsonResponse(new
{
Success = false,
Message = "이전 로그인 정보를 가져오는 중 오류가 발생했습니다: " + ex.Message
});
}
}
}
}