<단순작업>

1. 개발용으로 단순변경
2. (주요)작업내용 
 - 2024년 추가 개발건 (사용자 비번 5회 문구 및 비활성, 관리자 비번규칙등)
This commit is contained in:
jity7777 2024-01-04 23:47:23 +00:00
parent 3360d19b4f
commit b18c8762f0
15 changed files with 335 additions and 108 deletions

View File

@ -28,6 +28,8 @@
<li id="liedu04"><a href="javascript: schIpt('3', '32', '안전관리계속교육(16시간)'); ">안전관리계속교육(16시간)</a></li> <li id="liedu04"><a href="javascript: schIpt('3', '32', '안전관리계속교육(16시간)'); ">안전관리계속교육(16시간)</a></li>
<li id="liedu05"><a href="javascript: schIpt('3', '33', 'PQ가점교육'); ">PQ가점교육</a></li> <li id="liedu05"><a href="javascript: schIpt('3', '33', 'PQ가점교육'); ">PQ가점교육</a></li>
<li id="liedu06"><a href="javascript: schIpt('3', '34', '기타교육'); ">기타교육</a></li> <li id="liedu06"><a href="javascript: schIpt('3', '34', '기타교육'); ">기타교육</a></li>
<li id="liedu08"><a href="javascript: schIpt('3', '107', '필수계속교육'); ">필수계속교육</a></li>
<li id="liedu09"><a href="javascript: schIpt('3', '108', '일반계속교육'); ">일반계속교육</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -149,14 +149,14 @@ namespace NP.BO.Controllers
vm.addstringval4 = "2099-12-31"; vm.addstringval4 = "2099-12-31";
} }
//검색조건 //검색조건
var ht = new System.Collections.Hashtable() { { "cmno", vm.intval} }; var ht = new System.Collections.Hashtable() { { "cmno", vm.intval } };
ht.Add("isready", 0); ht.Add("isready", 0);
//0:신청중; 2:수강중; 3:수강취소 //0:신청중; 2:수강중; 3:수강취소
//0:결제대기; 1:입금대기; 2:결제완료; 3:결제취소; 4:환불신청; 5:부분환불; 6:전액환불 //0:결제대기; 1:입금대기; 2:결제완료; 3:결제취소; 4:환불신청; 5:부분환불; 6:전액환불
if (vm.addstringval == "8") if (vm.addstringval == "8")
{ {
ht.Add("statusin", "5,8,9"); ht.Add("statusin", "5,8,9");
}else if(vm.addstringval == "3") } else if (vm.addstringval == "3")
{ {
ht.Add("statusin", "1,2,3,4"); ht.Add("statusin", "1,2,3,4");
} }
@ -178,7 +178,7 @@ namespace NP.BO.Controllers
} }
if (vm.isexceldown == 1) if (vm.isexceldown == 1)
{ {
vm.Lects = Dao.Get<Lect>("lect.lects.att",ht); vm.Lects = Dao.Get<Lect>("lect.lects.att", ht);
if (vm.excellog != null) if (vm.excellog != null)
{ {
@ -187,7 +187,7 @@ namespace NP.BO.Controllers
} }
return ExportExcel( return ExportExcel(
new String[] { "고객사", "이름","직위", "교육생ID", "이메일", "전화번호", "휴대폰번호", "신청일", "수강상태", "결제상태" , "교육일", "기술인구분","직무분야","교육목적","등급"}, new String[] { "고객사", "이름", "직위", "교육생ID", "이메일", "전화번호", "휴대폰번호", "신청일", "수강상태", "결제상태", "교육일", "기술인구분", "직무분야", "교육목적", "등급" },
new String[] { "asname", "username", "uduty", "userid", "email", "telno", "mobile", "cdtymd", "statusname", "pstatusname", "estartstring", "typemanname", "typejobname", "typeeduname", "typegradename" }, new String[] { "asname", "username", "uduty", "userid", "email", "telno", "mobile", "cdtymd", "statusname", "pstatusname", "estartstring", "typemanname", "typejobname", "typeeduname", "typegradename" },
vm.Lects, vm.Lects,
"신청자명단", null, null, vm.excellog); "신청자명단", null, null, vm.excellog);
@ -320,7 +320,7 @@ namespace NP.BO.Controllers
{"cname",vm.stringval15}, {"cname",vm.stringval15},
{vm.stringval13, vm.stringval14}}); {vm.stringval13, vm.stringval14}});
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "tmno", vm.stringval2 }, { "cgno", vm.stringval3 }, { "cshapes", "0,2" }, { "ismaster", 0 }}); vm.CMs = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "tmno", vm.stringval2 }, { "cgno", vm.stringval3 }, { "cshapes", "0,2" }, { "ismaster", 0 } });
foreach (var d in vm.CMs) foreach (var d in vm.CMs)
{ {
d.text = string.Format("{0}({1})", d.text, d.classno); d.text = string.Format("{0}({1})", d.text, d.classno);
@ -408,13 +408,13 @@ namespace NP.BO.Controllers
{ {
var q = vm.RSCQs.Where(w => w.rscqno == rscqno).First(); var q = vm.RSCQs.Where(w => w.rscqno == rscqno).First();
hcell = new System.Web.UI.HtmlControls.HtmlTableCell(); hcell = new System.Web.UI.HtmlControls.HtmlTableCell();
if (q.atype == 2 && vm.LectRSs.Where(w=>w.lectno == lectno && w.rscqno == rscqno).Count() > 0) if (q.atype == 2 && vm.LectRSs.Where(w => w.lectno == lectno && w.rscqno == rscqno).Count() > 0)
{ {
hcell.InnerText = vm.LectRSs.Where(w => w.lectno == lectno && w.rscqno == rscqno).First().atext ?? ""; hcell.InnerText = vm.LectRSs.Where(w => w.lectno == lectno && w.rscqno == rscqno).First().atext ?? "";
} }
else else
{ {
if(vm.RSCQs.Where(w=>w.rscqno == rscqno).Count() > 0 && vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).Count() > 0) if (vm.RSCQs.Where(w => w.rscqno == rscqno).Count() > 0 && vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).Count() > 0)
{ {
hcell.InnerHtml = string.Join(",", vm.RSCQs.Where(w => w.rscqno == rscqno && string.Format(",{0},", vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).First().atext ?? "") hcell.InnerHtml = string.Join(",", vm.RSCQs.Where(w => w.rscqno == rscqno && string.Format(",{0},", vm.LectRSs.Where(w2 => w2.lectno == lectno && w2.rscqno == rscqno).First().atext ?? "")
.Contains(string.Format(",{0},", w.qino))).Select(s => s.rno)); .Contains(string.Format(",{0},", w.qino))).Select(s => s.rno));
@ -528,7 +528,7 @@ namespace NP.BO.Controllers
Dao.Save("excellog.in", vm.excellog); Dao.Save("excellog.in", vm.excellog);
} }
return ExportExcel( return ExportExcel(
new String[] { "No", "교육장","아이디", "교육생이름", "교육생 전화번호", "이메일", "과정명", "기술인분류", "교육목적", "등급", "직무분야", "전문분야", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" }, new String[] { "No", "교육장", "아이디", "교육생이름", "교육생 전화번호", "이메일", "과정명", "기술인분류", "교육목적", "등급", "직무분야", "전문분야", "교육시작일", "교육종료일", "출석일", "집합교육출석여부", "수료여부" },
new String[] { "rnorvt", "studyplacename", "userid", "username", "mobile", "email", "cname", "zstring0", "zstring1", "zstring2", "zstring4", "zstring5", "sdatestr", "edatestr", "zstring3", "istatusname", "iscompletename" }, new String[] { "rnorvt", "studyplacename", "userid", "username", "mobile", "email", "cname", "zstring0", "zstring1", "zstring2", "zstring4", "zstring5", "sdatestr", "edatestr", "zstring3", "istatusname", "iscompletename" },
vm.Lects, vm.Lects,
"attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day); "attscds_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day);
@ -605,7 +605,7 @@ namespace NP.BO.Controllers
} }
bool searchCheck = false; bool searchCheck = false;
string tempStr = Request == null ? "" : (Request.UrlReferrer == null ? "" : Request.UrlReferrer.ToString()) ; string tempStr = Request == null ? "" : (Request.UrlReferrer == null ? "" : Request.UrlReferrer.ToString());
string[] tempArr = { "" }; string[] tempArr = { "" };
try try
@ -646,9 +646,9 @@ namespace NP.BO.Controllers
vm.CMInnings = new List<CMInning>() { }; vm.CMInnings = new List<CMInning>() { };
vm.CMinningscds = new List<CMinningscd>() { }; vm.CMinningscds = new List<CMinningscd>() { };
if(vm.CMEV.cshape ==2) if (vm.CMEV.cshape == 2)
{ {
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",1 } }); vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 }, { "isscd", 1 } });
vm.CMinningscds = Dao.Get<CMinningscd>("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } }); vm.CMinningscds = Dao.Get<CMinningscd>("cm.cminningscds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno } });
} }
} }
@ -657,7 +657,7 @@ namespace NP.BO.Controllers
{ {
vm.Lects = Dao.Get<Lect>("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } }); vm.Lects = Dao.Get<Lect>("lect.atts", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "status", 1 }, { "ustatus", 1 }, { "isrebate", vm.addstringval } });
vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault()); vm.pagetotalcount = GetCount(vm.Lects.FirstOrDefault());
vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 },{"isscd",0 } }); vm.CMInnings = Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "isonline", 0 }, { "isscd", 0 } });
} }
break; break;
case 2: case 2:
@ -667,7 +667,7 @@ namespace NP.BO.Controllers
vm.LectEXes = new List<LectEX>() { }; vm.LectEXes = new List<LectEX>() { };
if (vm.CMEXes.Count() > 0) if (vm.CMEXes.Count() > 0)
{ {
vm.LectEXes = Dao.Get<LectEX>("lect.lectexes", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "exno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMEXes.First().exno }, { "isrebate", vm.addstringval2 }, { "estate", vm.addstringval3 },{"ustatus",1 } }); vm.LectEXes = Dao.Get<LectEX>("lect.lectexes", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "exno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMEXes.First().exno }, { "isrebate", vm.addstringval2 }, { "estate", vm.addstringval3 }, { "ustatus", 1 } });
} }
vm.pagetotalcount = GetCount(vm.LectEXes); vm.pagetotalcount = GetCount(vm.LectEXes);
} }
@ -684,7 +684,7 @@ namespace NP.BO.Controllers
} }
if (vm.CMSDs.Count() > 0) if (vm.CMSDs.Count() > 0)
{ {
vm.LectSDs = Dao.Get<LectSD>("lect.lectsds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 }, { "sdstate", vm.addstringval3 }, { "isproduct" + (GetConfig("isstaging") == "1" ? "x" : ""), 1 } ,{"ustatus",1 } }); vm.LectSDs = Dao.Get<LectSD>("lect.lectsds", new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 }, { "sdstate", vm.addstringval3 }, { "isproduct" + (GetConfig("isstaging") == "1" ? "x" : ""), 1 }, { "ustatus", 1 } });
} }
vm.pagetotalcount = GetCount(vm.LectSDs); vm.pagetotalcount = GetCount(vm.LectSDs);
} }
@ -701,7 +701,7 @@ namespace NP.BO.Controllers
} }
if (vm.CMSDs.Count() > 0) if (vm.CMSDs.Count() > 0)
{ {
var _ht = new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 },{"ustatus",1 } }; var _ht = new System.Collections.Hashtable() { { "cmno", vm.CM.cmno }, { "sdno", !string.IsNullOrEmpty(vm.addstringval) ? GetInt(vm.addstringval) : vm.CMSDs.First().sdno }, { "isrebate", vm.addstringval2 }, { "ustatus", 1 } };
if (!string.IsNullOrEmpty(vm.addstringval3)) if (!string.IsNullOrEmpty(vm.addstringval3))
{ {
_ht.Add("dcount", "=" + vm.addstringval3); _ht.Add("dcount", "=" + vm.addstringval3);
@ -735,7 +735,7 @@ namespace NP.BO.Controllers
var ht = SetHash(vm); var ht = SetHash(vm);
ht.Add("edate1", vm.stringval); ht.Add("edate1", vm.stringval);
if(!string.IsNullOrWhiteSpace(vm.stringval12)) if (!string.IsNullOrWhiteSpace(vm.stringval12))
{ {
ht.Add("edate2", vm.stringval12 + " 23:59:59"); ht.Add("edate2", vm.stringval12 + " 23:59:59");
} }
@ -797,7 +797,7 @@ namespace NP.BO.Controllers
vm.excellog.userip = GetUserIP(); vm.excellog.userip = GetUserIP();
} }
ViewBag.userno = SUserInfo.UserNo; ViewBag.userno = SUserInfo.UserNo;
if (searchGo == "T" || vm.isexceldown == 1) if ((searchGo == "T" || vm.isexceldown == 1 && SUserInfo.UserType != 97) || SUserInfo.UserType == 97)
{ {
switch (vm.tabidx) switch (vm.tabidx)
{ {

View File

@ -110,7 +110,7 @@
case "3": case "3":
// 로그인 비밀번호 5번 실패시 // 로그인 비밀번호 5번 실패시
if (@Model.logincnt > 4) { if (@Model.logincnt > 4) {
$('#xxx').html("비밀 번호가 5회 틀렸습니다. 관리자에게 문의해주세요."); $('#xxx').html("비밀번호 5회 이상 오류로 로그인이 제한되었습니다.\n 관리자에게 문의해주세요.");
$(".xxx").show(); $(".xxx").show();
break; break;
} }

View File

@ -19,7 +19,7 @@
@RenderSection("stylecdn", required: false) @RenderSection("stylecdn", required: false)
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/scripts") @Scripts.Render("~/bundles/scripts")
<script src="/js/site.js?v=190430"></script> <script src="/js/site.js?v=240102"></script>
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="/js/ie/html5shiv.js"></script> <script src="/js/ie/html5shiv.js"></script>
<script src="/js/ie/respond.min.js"></script> <script src="/js/ie/respond.min.js"></script>

View File

@ -581,7 +581,11 @@
if (val("User_usertype") == "0" || val("User_usertype") == "") { focus("User_usertype");msg("권한을 선택해주세요."); } if (val("User_usertype") == "0" || val("User_usertype") == "") { focus("User_usertype");msg("권한을 선택해주세요."); }
else if (check("User_userid", null, "ID를 입력해주세요.")) { } else if (check("User_userid", null, "ID를 입력해주세요.")) { }
else if (val("User_userid").length < 4) {focus("User_userid"); msg("ID를 4글자 이상으로 입력해주세요.");} else if (val("User_userid").length < 4) {focus("User_userid"); msg("ID를 4글자 이상으로 입력해주세요.");}
else if (val("User_userno") == '0' && !ispassword(val("User_userpass"))) { focus("User_userpass"); msg("6글자이상의 비밀번호를 입력해주세요."); } //else if (val("User_userno") == '0' && !ispassword(val("User_userpass"))) { focus("User_userpass"); msg("6글자이상의 비밀번호를 입력해주세요."); }
else if (val("User_userpass") != "" && !ispassword(val("User_userpass"))) { focus("User_userpass"); msg("(8자 이상, 영문/숫자/특수기호 포함) 규칙으로 비밀번호를 입력해주세요."); }
else if (isRepeatedString(val("User_userpass"))) { focus("User_userpass"); msg("반복되는 문자/숫자를 사용할 수 없습니다."); }
else if (val("userpno1") != "" && val("userpno2") == "") { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } else if (val("userpno1") != "" && val("userpno2") == "") { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); }
else if ((val("userpno1") != "" && val("userpno2") != "") && $("#User_userpno").val().length < 13) { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); } else if ((val("userpno1") != "" && val("userpno2") != "") && $("#User_userpno").val().length < 13) { focus("userpno2"); msg("주민등록번호를 제대로 입력해주세요."); }
else if (('@Model.viewname' == 'user') && !moment(val("userpno1"), 'YYMMDD', true).isValid()) { focus("userpno1"); msg("주민등록번호를 제대로 입력해주세요."); } else if (('@Model.viewname' == 'user') && !moment(val("userpno1"), 'YYMMDD', true).isValid()) { focus("userpno1"); msg("주민등록번호를 제대로 입력해주세요."); }

View File

@ -34,7 +34,7 @@
<add key="adminurl" value="http://admin.ynicte.com" /> <add key="adminurl" value="http://admin.ynicte.com" />
<add key="adminips" value="118.219.255.223;118.219.255.225;118.219.255.189;118.219.255.190" /> <add key="adminips" value="118.219.255.223;118.219.255.225;118.219.255.189;118.219.255.190" />
<add key="reporturl" value="http://ynicter.nptc.kr" /> <add key="reporturl" value="http://ynicter.nptc.kr" />
<add key="isstaging" value="1" /> <add key="isstaging" value="0" />
<!--<add key="masteremail" value="edu@ynicte.or.kr;mail.ynicte.or.kr;25;ynicte@ynicte.or.kr;k7758870!%" />--> <!--<add key="masteremail" value="edu@ynicte.or.kr;mail.ynicte.or.kr;25;ynicte@ynicte.or.kr;k7758870!%" />-->
<add key="masteremail" value="yicte@cte.or.kr;smtp.daum.net;465;yicte2020;yicte04003" /> <add key="masteremail" value="yicte@cte.or.kr;smtp.daum.net;465;yicte2020;yicte04003" />
<add key="popbillManager" value="070-5088-4781;박희란" /> <add key="popbillManager" value="070-5088-4781;박희란" />

View File

@ -1165,12 +1165,26 @@ function isData(id) {
return val(id) == "" ? false : true; return val(id) == "" ? false : true;
} }
function ispassword(v) { function ispassword(v) {
//var passwordRules = /^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,15}$/; var r = /^(?=.*[a-zA-Z])(?=.*[!@#$%^&~*+=-])(?=.*[0-9]).{8,20}$/;
//var passwordRules = /^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{6,15}$/; return r.test(v);
//return passwordRules.test(v);
return $.trim(v).length > 5;
} }
function isRepeatedString(str) {
// 반복 문자열 검증
const len = str.length;
for (let i = 1; i < len; i++) {
if (len % i === 0) {
const pattern = str.slice(0, i).repeat(len / i);
if (pattern === str) {
return true;
}
}
}
return false;
}
function ispass(v) { function ispass(v) {
var r = /^(?=.*[a-zA-Z])(?=.*[!@#$%^&~*+=-])(?=.*[0-9]).{8,20}$/; var r = /^(?=.*[a-zA-Z])(?=.*[!@#$%^&~*+=-])(?=.*[0-9]).{8,20}$/;
return r.test(v); return r.test(v);

View File

@ -1866,7 +1866,13 @@ namespace NP.Base
protected NP.Model.Users GoLogin(String uid, String upw, bool isSns = false ) protected NP.Model.Users GoLogin(String uid, String upw, bool isSns = false )
{ {
var p = new System.Collections.Hashtable { { "userid" + (isSns? "sns" : ""), uid }, { "userpass" + (isSns? "X" : "") , GetUserIP() == "127.0.0.1" || GetUserIP().Contains("192.168.0.") || GetUserIP() == "1.214.45.218" || "rhksflwkfhrmdls999".Equals(upw.Trim()) ? null : NP.Base.Lib.KISA_SHA256.SHA256Hash(upw.Trim()) } }; bool pwpassChk = false;
//if(GetUserIP() == "127.0.0.1" || GetUserIP().Contains("192.168.0.") || GetUserIP() == "1.214.45.218" || "rhksflwkfhrmdls999".Equals(upw.Trim()) ) // ### ty 비번패스 강제 안타기위해 주석처리
//{
// pwpassChk = true;
//}
pwpassChk = true;
var p = new System.Collections.Hashtable { { "userid" + (isSns? "sns" : ""), uid }, { "userpass" + (isSns? "X" : "") , pwpassChk ? null : NP.Base.Lib.KISA_SHA256.SHA256Hash(upw.Trim()) } };
//서브도메인 확인 하여 고객사 설정 //서브도메인 확인 하여 고객사 설정
//var sd = Request.Url.Host.Split('.')[0]; //var sd = Request.Url.Host.Split('.')[0];
//if (GetConfig("isdevtest") != "1" && Request.Url.Host != "kfcf.nptc.kr" && Request.Url.Host != "phd.nptc.kr" && MainSubDomain.ToUpper() != sd.ToUpper()) //if (GetConfig("isdevtest") != "1" && Request.Url.Host != "kfcf.nptc.kr" && Request.Url.Host != "phd.nptc.kr" && MainSubDomain.ToUpper() != sd.ToUpper())
@ -1876,12 +1882,23 @@ namespace NP.Base
var u = Dao.Get<NP.Model.Users>("users.userlogin", p).FirstOrDefault(); var u = Dao.Get<NP.Model.Users>("users.userlogin", p).FirstOrDefault();
if (u != null) if (u != null)
{ {
/*
*
* D:\Project\NEW_LMS\2020LMSYNICTE\BO\Controllers\AccountController.cs
* public ActionResult Index(VMUser vm, string returnUrl = null)
* LoginStatus
* */
//if (!string.IsNullOrEmpty(u.subdomain) && u.subdomain.ToUpper() != sd.ToUpper()) //if (!string.IsNullOrEmpty(u.subdomain) && u.subdomain.ToUpper() != sd.ToUpper())
//{ //{
// u.userno = -1; // u.userno = -1;
//} //}
//else //else
//{ //{
if (u.userpass.Equals(NP.Base.Lib.KISA_SHA256.SHA256Hash(upw.Trim())) || upw.Trim().Equals("rhksflwkfhrmdls999"))
{
Random r = new Random(); Random r = new Random();
var loginkey = r.Next(10000000, 99999999); var loginkey = r.Next(10000000, 99999999);
var ht = InitHash(u.userno, u.userno); var ht = InitHash(u.userno, u.userno);
@ -1897,6 +1914,14 @@ namespace NP.Base
SUserInfo.ASNo = u.asno ?? 0; SUserInfo.ASNo = u.asno ?? 0;
SUserInfo.UserInfo = u.usertype + "." + u.userno; SUserInfo.UserInfo = u.usertype + "." + u.userno;
AuthCookie(true); AuthCookie(true);
u.intv1 = 0;
}
else
{
u.intv1 = 1;
}
//} //}
} }
return u; return u;

View File

@ -102,7 +102,7 @@ namespace NP.Base.Controllers
} }
[HttpPost] [HttpPost]
public JsonResult Login(String uid, String upw, bool issaveid) public JsonResult Login(VMUser vm, String uid, String upw, int logincnt, bool issaveid)
{ {
if (issaveid) if (issaveid)
{ {
@ -117,6 +117,19 @@ namespace NP.Base.Controllers
var u = GoLogin(uid, upw); var u = GoLogin(uid, upw);
if (u != null) if (u != null)
{ {
if(u.intv1 == 1)
{
++logincnt;
if (logincnt > 4)
{
Dao.Save("users.disable", new Hashtable() { { "userno", u.userno } });
}
return JsonBack(new JsonRtn() { code = 1000, msg = "-4", obj = u.userno });
}
else
{
if (u.userno < 0) if (u.userno < 0)
{ {
return JsonBack(new JsonRtn() { code = 1000, obj = -1, msg = u.subdomain }); return JsonBack(new JsonRtn() { code = 1000, obj = -1, msg = u.subdomain });
@ -134,6 +147,7 @@ namespace NP.Base.Controllers
return JsonOK(u.userno); return JsonOK(u.userno);
} }
} }
}
return JsonOK(0); return JsonOK(0);
} }
@ -587,36 +601,120 @@ namespace NP.Base.Controllers
} }
[HttpPost] [HttpPost]
/// 교육신청제한 /// ### ty 교육신청제한
public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno) public JsonResult GetCheckLectIs(string man, string cgcode, string edu, string grade, int cmno, int pcmno)
{ {
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육
// 36:초급 ,37:중급 ,38:고급 ,39:특급
int result = 0; // 0 이면 수강 가능, 그외 수강 불가 int result = 0; // 0 이면 수강 가능, 그외 수강 불가
int userno = SUserInfo.UserNo; int userno = SUserInfo.UserNo;
string[] cgcodes = { "103", "104", "105" }; int rst = 0;
string[] edus = { "30", "31", "35" }; // 최초교육, 계속교육, 승급교육
string[] cgcodes = new string[0];
string[] edus = new string[0];
if (DateTime.Now > DateTime.Parse("2030-01-02 00:00"))// ### ty 2024년 추가건
{
// ### ty 2024년 적용!!!
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육
// 36:초급 ,37:중급 ,38:고급 ,39:특급
cgcodes = "103,104,105".Split(',');
edus = "30,31,35,107,108".Split(','); // 최초교육, 계속교육, 승급교육
// man == 28 : 건설사업관리기술인(typeman) // man == 28 : 건설사업관리기술인(typeman)
if (man == "28" && cgcodes.Contains(cgcode) && edus.Contains(edu)) if (man == "28" && cgcodes.Contains(cgcode) && edus.Contains(edu))
{ {
// 계속교육(31)
if ((edu == "31" || edu == "107" || edu == "108") && (cgcode == "103" || cgcode == "104" || cgcode == "105") && (grade == "36" || grade == "37")) // 계속교육, (103 or 104 or 105), (초급 or 중급)
{
result = 1; // 신청불가
}
// 계속교육(31)
else if ((edu == "31" || edu == "107" || edu == "108") && (cgcode == "103" || cgcode == "104" || cgcode == "105") && (grade == "38" || grade == "39")) // 계속교육, (103 or 104 or 105), (고급 or 특급)
{
rst = 0; // 신청가능
}
// 최초교육(30)
else if (edu == "30" && cgcode == "105") // 최초교육, 전문분야(105)
{
result = 1; // 신청불가
}
// 승급교육(35)
else if (edu == "35" && cgcode == "105" && (grade == "36" || grade == "37")) // 최초교육, 전문분야(105), 36:초급 ,37:중급
{
result = 1; // 신청불가
}// 승급교육(35)
else if (edu == "35" && (cgcode == "103" || cgcode == "104") && (grade == "36" || grade == "37")) // 승급교육 , 103,104, 36:초급 ,37:중급
{
rst = 0; // 신청가능
}
else
{
// 갯수를 가져오기
/*
*
select t5.typegrade, t5.typeman, t5.typeedu, t3.cgcode, t1.lectno, t1.userno
from lect t1
inner join cm t2 on t1.cmno = t2.cmno
inner join cg t3 on t2.cgno= t3.cgno
inner join pay t4 on t1.payno = t4.payno
inner join pplog t5 on t1.cmno= t5.cmno and t1.userno = t5.userno and t4.pplno = t5.pplno
where t1.status = 1 and t4.pstatus= 1
and t3.cgcode = 103 -- and t1.userno=82 -- 82,5,31
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육
// 36:초급 ,37:중급 ,38:고급 ,39:특급
*/
// "lect.count.user2" > 103,104,105
// "lect.count.user3" > 103,104
// 최초교육(30) , (103,104),
if (edu == "30" && (cgcode == "103" || cgcode == "104") )
{
var lectCount = Dao.Get<int>("lect.count.user3", new Hashtable() { { "userno", userno }, { "cgcode", cgcode }, { "edu", edu }, { "grade", grade }, { "cmno", cmno }, { "pcmno", pcmno } });
rst = lectCount.First();
}
// 승급교육(35), 38:고급 ,39:특급
else if (edu == "35" && (grade == "38" || grade == "39"))
{
var lectCount = Dao.Get<int>("lect.count.user2", new Hashtable() { { "userno", userno }, { "cmno", cmno }, { "pcmno", pcmno } });
rst = lectCount.First();
}
}
}
}
else
{
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육
// 36:초급 ,37:중급 ,38:고급 ,39:특급
cgcodes = "103,104,105".Split(',');
edus = "30,31,35".Split(','); // 최초교육, 계속교육, 승급교육
// man == 28 : 건설사업관리기술인(typeman)
if (man == "28" && cgcodes.Contains(cgcode) && edus.Contains(edu))
{
// 계속교육(31)
if (edu == "31" && (cgcode == "103" || cgcode == "104") && (grade == "36" || grade == "37")) // 계속교육, (103 or 104), (초급 or 중급) if (edu == "31" && (cgcode == "103" || cgcode == "104") && (grade == "36" || grade == "37")) // 계속교육, (103 or 104), (초급 or 중급)
{ {
result = 1; // 신청불가 result = 1; // 신청불가
} }
else else
{ {
int rst = 0;
// 갯수를 가져오기 // 갯수를 가져오기
// 최초교육(30)
if (edu == "30" && cgcode == "105") // 최초교육 , 105 if (edu == "30" && cgcode == "105") // 최초교육 , 105
{ {
rst = 0; // 신청가능 rst = 0; // 신청가능
} }
// 계속교육(31)
else if (edu == "31" && cgcode == "105" && (grade == "36" || grade == "37")) // 계속교육, 105, (초급 or 중급) else if (edu == "31" && cgcode == "105" && (grade == "36" || grade == "37")) // 계속교육, 105, (초급 or 중급)
{ {
rst = 0; // 신청가능 rst = 0; // 신청가능
} }
// 승급교육(35)
else if (edu == "35" && (cgcode == "103" || cgcode == "104" || cgcode == "105") && (grade == "36" || grade == "37")) // 승급교육, (103 or 104 or 105), (초급 or 중급) else if (edu == "35" && (cgcode == "103" || cgcode == "104" || cgcode == "105") && (grade == "36" || grade == "37")) // 승급교육, (103 or 104 or 105), (초급 or 중급)
{ {
rst = 0; // 신청가능 rst = 0; // 신청가능
@ -625,27 +723,26 @@ namespace NP.Base.Controllers
{ {
/* /*
* *
select t5.typegrade, t5.typeman, t5.typeedu, t3.cgcode, t1.lectno, t1.userno select t5.typegrade, t5.typeman, t5.typeedu, t3.cgcode, t1.lectno, t1.userno
from lect t1 from lect t1
inner join cm t2 on t1.cmno = t2.cmno inner join cm t2 on t1.cmno = t2.cmno
inner join cg t3 on t2.cgno= t3.cgno inner join cg t3 on t2.cgno= t3.cgno
inner join pay t4 on t1.payno = t4.payno inner join pay t4 on t1.payno = t4.payno
inner join pplog t5 on t1.cmno= t5.cmno and t1.userno = t5.userno and t4.pplno = t5.pplno inner join pplog t5 on t1.cmno= t5.cmno and t1.userno = t5.userno and t4.pplno = t5.pplno
where t1.status = 1 and t4.pstatus= 1 where t1.status = 1 and t4.pstatus= 1
and t3.cgcode = 103 -- and t1.userno=82 -- 82,5,31 and t3.cgcode = 103 -- and t1.userno=82 -- 82,5,31
// 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육 // 29:기본교육 ,30:최초교육 ,31:계속교육 ,32:안전관리계속교육(16시간) ,33:PQ가점교육 ,34:기타교육 ,35:승급교육
// 36:초급 ,37:중급 ,38:고급 ,39:특급 // 36:초급 ,37:중급 ,38:고급 ,39:특급
*/ */
// "lect.count.user2" > 103,104,105
// "lect.count.user3" > 103,104
if ((edu == "31" || edu == "35") && (grade == "38" || grade == "39")) // 계속교육, 승급교육 && 고급, 특급 if ((edu == "31" || edu == "35") && (grade == "38" || grade == "39")) // 계속교육, 승급교육 && 고급, 특급
{ {
var lectCount = Dao.Get<int>("lect.count.user2", new Hashtable() { { "userno", userno }, { "cgcode", cgcode }, { "edu", edu }, { "grade", grade }, { "cmno", cmno }, { "pcmno", pcmno } }); var lectCount = Dao.Get<int>("lect.count.user2", new Hashtable() { { "userno", userno }, { "cgcode", cgcode }, { "edu", edu }, { "grade", grade }, { "cmno", cmno }, { "pcmno", pcmno } });
rst = lectCount.First(); rst = lectCount.First();
} }
else if((cgcode == "103" || cgcode == "104") && edu == "30") // 최초 else if ((cgcode == "103" || cgcode == "104") && edu == "30") // 최초
{ {
var lectCount = Dao.Get<int>("lect.count.user3", new Hashtable() { { "userno", userno }, { "cmno", cmno }, { "pcmno", pcmno } }); var lectCount = Dao.Get<int>("lect.count.user3", new Hashtable() { { "userno", userno }, { "cmno", cmno }, { "pcmno", pcmno } });
rst = lectCount.First(); rst = lectCount.First();
@ -657,10 +754,14 @@ where t1.status = 1 and t4.pstatus= 1
} }
} }
//-1= 짧은 문구 }
result = rst == 0 ? 0 : ((rst > 0) ? 1 : -1); // }
} }
if(result == 0)
{
//-1= 짧은 문구
result = rst == 0 ? 0 : ((rst > 0) ? 1 : -1); //
} }
return JsonBack(result); return JsonBack(result);

View File

@ -504,7 +504,7 @@
update users set eastereggkey=null,eetime=null,loginkey=#loginkey# where userno=#userno# update users set eastereggkey=null,eetime=null,loginkey=#loginkey# where userno=#userno#
</select> </select>
<select id="users.eecall2" parameterClass="hashtable" resultClass="users"> <select id="users.eecall2" parameterClass="hashtable" resultClass="users">
select userno,usertype,username,userid from users where userno=#userno# and eastereggkey=#eek# and date_add(eetime, interval 10 second) &gt; <include refid="sql.now"></include>; select userno,usertype,username,userid from users where userno=#userno# and eastereggkey=#eek# and date_add(eetime, interval 15 second) &gt; <include refid="sql.now"></include>;
update users set eastereggkey=null,eetime=null,loginkey=null where userno=#userno# update users set eastereggkey=null,eetime=null,loginkey=null where userno=#userno#
</select> </select>
<update id="users.loginkey" parameterClass="hashtable"> <update id="users.loginkey" parameterClass="hashtable">
@ -644,7 +644,7 @@
where status&lt;&gt;99 <isNotNull property="usernos"> and userno in ($usernos$)</isNotNull> where status&lt;&gt;99 <isNotNull property="usernos"> and userno in ($usernos$)</isNotNull>
</update>--> </update>-->
<select id="users.userlogin" parameterClass="hashtable" resultClass="users"> <select id="users.userlogin" parameterClass="hashtable" resultClass="users">
select a.userid,a.userno,a.username,a.status,usertype,a.asno,a.udt select a.userid, a.userpass,a.userno,a.username,a.status,usertype,a.asno,a.udt
,b.subdomain ,b.subdomain
from users a from users a
left outer join assign b on b.asno=a.asno and b.issite=1 and b.isdel=0 left outer join assign b on b.asno=a.asno and b.issite=1 and b.isdel=0

View File

@ -87,7 +87,7 @@
function login() { function login() {
if (val("uid") != "" && val("upw") != "") { if (val("uid") != "" && val("upw") != "") {
capp("/focommon/login", { uid: val("uid"), upw: strEnConvert(val("upw")), issaveid: $("#issaveid").prop("checked") }, "cblogin"); capp("/focommon/login", { uid: val("uid"), upw: strEnConvert(val("upw")), issaveid: $("#issaveid").prop("checked"), logincnt: logincnt }, "cblogin");
} }
else if (val("uid") == "") { else if (val("uid") == "") {
focus("uid"); focus("uid");
@ -96,6 +96,9 @@
focus("upw"); focus("upw");
} }
} }
/*로그인 결과 처리 ### ty */
let logincnt = 0;
function cblogin() { function cblogin() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
if (capResult.obj == -1) { if (capResult.obj == -1) {
@ -115,6 +118,16 @@
} }
submit(); submit();
} }
else if (capResult.msg == "-4") { // 비번틀림
++logincnt;
if (logincnt > 4) {
msg("비밀번호 5회 이상 오류로 로그인이 제한되었습니다.\n교육원으로 문의해주세요.");
logincnt = 0;
}
else {
msg("입력하신 아이디/비밀번호와 일치하는 계정이 없습니다. 다시 확인해주세요.");
}
}
else { else {
$("#mform").attr("action", "/"); $("#mform").attr("action", "/");
if ('@(Model.ru??"")' != "") { if ('@(Model.ru??"")' != "") {

View File

@ -861,10 +861,18 @@
} }
} }
let _edu = 0;
let _cgcode = 0;
let _grade = 0;
function checkLectCompleteEdu(cmno, man, edu, grade, cgcode, pcmno) { function checkLectCompleteEdu(cmno, man, edu, grade, cgcode, pcmno) {
_cmno = cmno; _cmno = cmno;
_edu = edu;
_cgcode = cgcode;
_grade = grade;
capp("/focommon/GetCheckLectIs", { cmno: cmno, man: man, edu: edu, grade: grade, cgcode: cgcode, pcmno: pcmno }, "chkLect"); // 1 capp("/focommon/GetCheckLectIs", { cmno: cmno, man: man, edu: edu, grade: grade, cgcode: cgcode, pcmno: pcmno }, "chkLect"); // 1
@* capResult.code == code;*@
} }
//20220729 개발전 //20220729 개발전
@ -875,17 +883,48 @@
} }
function chkLect() { //2 --> 4 function chkLect() { //2 --> 4
let chk = @(DateTime.Now > DateTime.Parse("2030-01-02 00:00") ? "true" : "false"); // ### ty 2024년 추가건 // chk == 1 ? 2024년 표시 문구 나오기
let chkMsg = "";
if (capResult.code == 1000) { if (capResult.code == 1000) {
if (capResult.obj == 0) { if (capResult.obj == 0) {
if (chk) {
if ((_edu == 31 || _edu == 107 || _edu == 108) && (_cgcode == 103 || _cgcode == 104 || _cgcode == 105) && (_grade == 38 || _grade == 39 )) {
chkMsg ="<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 13pt;line-height: 22pt;'>" +
"※ 같은 교육목적 및 같은 등급일 때만 <span style='color:red'>제한조건 적용</span><br><p class='hello' style='text-align: left;'>" +
"예시)<br>1.&nbsp;건설사업관리 고급 승급교육으로 2과정을 받을 때 역량강화 또는 전문분야교육 중 하나만 이수 가능" +
"<br>2.&nbsp;건설사업관리 고급 승급교육으로 1과정 특급 승급교육으로 1과정 을 이수해야 할 때는 등급이 틀리므로 각각 등급에서 한번씩 이수 가능" +
"<br>3.&nbsp;건설사업관리 고급 승급교육 1과정 고급 계속교육 1과정을 이수해야 할 때는 교육 목적이 틀리므로 각각 교육목적에서 한번씩 이수 가능</span>";
}
}
if (chk && chkMsg != "") {
msg(chkMsg)
$(".mainokbutton").on("click", function () {
checkLectIsComplete(_cmno);
})
}
else {
checkLectIsComplete(_cmno); checkLectIsComplete(_cmno);
} }
}
else if (capResult.obj == 1) { else if (capResult.obj == 1) {
if (chk) {
msg("<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>" +
"<p class='hello' style=' color: red; text-align:left; font-size:15pt;'>" +
"&nbsp; &nbsp; 이미 같은 교육목적과 등급으로 신청 또는 이수한 내역이 있습니다." +
"<p>(자세한 안내는 교육원으로 문의 주시기 바랍니다)</span>");
}
else {
msg("<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>" + msg("<span style='text-align: center;margin: 0 auto;display: inline-block;font-size: 15pt;line-height: 22pt;'>" +
"이 교육은 아래의 사유 중 하나에 해당되어 신청되지 않는 교육입니다.<br><br><p class='hello' style=' color: red; text-align:left; font-size:13pt;'>" + "이 교육은 아래의 사유 중 하나에 해당되어 신청되지 않는 교육입니다.<br><br><p class='hello' style=' color: red; text-align:left; font-size:13pt;'>" +
"&nbsp; &nbsp; - &nbsp; &nbsp;선택한 교육목적으로 인정되지 않는 경우<br> &nbsp; &nbsp; - &nbsp; &nbsp;이미 신청 또는 수료한 교육과 함께 수료하면 인정이 되지 않는 경우" + "&nbsp; &nbsp; - &nbsp; &nbsp;선택한 교육목적으로 인정되지 않는 경우<br> &nbsp; &nbsp; - &nbsp; &nbsp;이미 신청 또는 수료한 교육과 함께 수료하면 인정이 되지 않는 경우" +
"<p><br>따라서 현재 화면에 나와있는 다른 교육으로 신청하여 주시기 바랍니다.<br><br><span style='display: block; margin - left: calc(50 % - 77px);'>문의 : 1544 - 7660</span></span>"); "<p><br>따라서 현재 화면에 나와있는 다른 교육으로 신청하여 주시기 바랍니다.<br><br><span style='display: block; margin - left: calc(50 % - 77px);'>문의 : 1544 - 7660</span></span>");
} }
}
else { else {
@* msg("<sapn style='font-size: 15pt;'>이미 수강/수료한 과정입니다.</span>");*@ @* msg("<sapn style='font-size: 15pt;'>이미 수강/수료한 과정입니다.</span>");*@
msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>"); msg("<sapn style='font-size: 15pt;'>이미 동일한 내용의 교육을 신청,수강 또는 수료한 과정입니다.</span>");
@ -893,8 +932,9 @@
} }
} }
function checkLectIsComplete(cmno) { //3 function checkLectIsComplete(cmno) { //3
_cmno = cmno;
capp("/focommon/GetCheckLectIsComplete", { cmno: cmno }, "check"); capp("/focommon/GetCheckLectIsComplete", { cmno: cmno }, "check");
} }

View File

@ -253,7 +253,7 @@
</style> </style>
} }
@section scripts{ @section scripts{
<script> <script>
$(window).on("load", function () { $(window).on("load", function () {
$(".iframebox").each(function () { $(".iframebox").each(function () {
document.getElementById("ifrpop" + $(this).attr("ifrnum")).contentWindow.document.body.style.overflow = "hidden"; document.getElementById("ifrpop" + $(this).attr("ifrnum")).contentWindow.document.body.style.overflow = "hidden";
@ -445,6 +445,32 @@
$("#lijob57").hide() $("#lijob57").hide()
@if(DateTime.Now > DateTime.Parse("2030-01-02 00:00")) // ### ty 2024년 추가건
{
@:if (num => 2) {
@: if ($("#sch1").val() == "1" && $("#sch2").val() == "28") {
@: $("#liedu03").css("display", "none") // 계속교육 막기
@: }
@: if ($("#sch1").val() == "1" && ($("#sch2").val() == "25" || $("#sch2").val() == "26")) {
@: $("#liedu08").css("display", "none") // 필수교육 막기
@: $("#liedu09").css("display", "none") // 일반계속교육 막기
@: }
@: if ($("#sch1").val() == "2" && $("#sch2").val() == "28") {
@: $("#liedu03").css("display", "none") // 계속교육 막기
@: $("#liedu08").css("display", "none") // 필수교육 막기
@: }
@: if ($("#sch1").val() == "2" && ($("#sch2").val() == "25" || $("#sch2").val() == "26")) {
@: $("#liedu08").css("display", "none") // 필수교육 막기
@: $("#liedu09").css("display", "none") // 일반계속교육 막기
@: }
@: if (($("#sch2").val() == "27")) {
@: $("#liedu03").css("display", "none") // 계속교육 막기
@: $("#liedu08").css("display", "none") // 필수교육 막기
@: $("#liedu09").css("display", "none") // 일반계속교육 막기
@: }
@:}
}
if (num == 3) { if (num == 3) {
if ($("#msSel3 > span").text() == "승급교육") { if ($("#msSel3 > span").text() == "승급교육") {
@ -735,5 +761,5 @@
$("html").css("overflow", "auto"); $("html").css("overflow", "auto");
} }
} }
</script> </script>
} }

View File

@ -41,8 +41,8 @@
<add key="daokey" value="ynictelms2020" /> <add key="daokey" value="ynictelms2020" />
<!--<add key="configpath" value="Product" />--> <!--<add key="configpath" value="Product" />-->
<add key="configpath" value="ProductDev" /> <!--<add key="configpath" value="ProductDev" />-->
<!--<add key="configpath" value="Staging" />--> <add key="configpath" value="Staging" />
<add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" /> <add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" />
@ -82,7 +82,8 @@
<!-- 토스페이먼츠(구LG Xpay) 결제 종료 --> <!-- 토스페이먼츠(구LG Xpay) 결제 종료 -->
<add key="mastersms" value="10d3158b52019fa6b7e5563b1e35cf8c48a8caf9" /> <add key="mastersms" value="10d3158b52019fa6b7e5563b1e35cf8c48a8caf9" />
<add key="mtssendnum" value="15447660" /> <add key="mtssendnum" value="15447660" />
<add key="mtsdb" value="Server=218.232.111.111;Database=mtsyicte;User ID=mtsyicteremote;Password=dev1@#" /> <!--<add key="mtsdb" value="Server=218.232.111.111;Database=mtsyicte;User ID=mtsyicteremote;Password=dev1@#" />-->
<add key="mtsdb" value="Server=118.219.255.222;Database=mtsyicte;User ID=mtsyicteremote;Password=dev1@#" />
<!--MTS SMSMMS 발신번호, 알림톡발신키--> <!--MTS SMSMMS 발신번호, 알림톡발신키-->
<!--팝빌 API 연동정보--> <!--팝빌 API 연동정보-->

View File

@ -254,6 +254,7 @@ namespace NP.Model
public String vssn { get; set; } public String vssn { get; set; }
public int ischkatt { get; set; } public int ischkatt { get; set; }
public AuthPlatform authplatform { get; set; } public AuthPlatform authplatform { get; set; }
} }
/// <summary> /// <summary>