(201028) 회원가입 수정 및 본인인증 추가

This commit is contained in:
kdh0120 2020-10-28 01:06:43 +00:00
parent 988a4d9ac9
commit 64ddf629dd
21 changed files with 1593 additions and 614 deletions

View File

@ -158,10 +158,9 @@ namespace NP.Base.Controllers
[HttpPost] [HttpPost]
public JsonResult Join(Users u) public JsonResult Join(Users u)
{ {
u.email = u.userid;
u.uip = GetUserIP(); u.uip = GetUserIP();
//이메일, 아이디 중복 체크 //이메일, 아이디 중복 체크
var u129 = Dao.Get<int>("users.checkuser", new Hashtable() { { "userid", u.userid }, { "email", u.email } }).First(); var u129 = Dao.Get<int>("users.checkuser", new Hashtable() { { "userid", u.userid }, { "email", u.email },{"mobile",u.mobile } }).First();
if (u129 != 9) if (u129 != 9)
{ {
return JsonOK(u129 * -1); return JsonOK(u129 * -1);
@ -338,6 +337,17 @@ namespace NP.Base.Controllers
} }
return JsonOK(0); return JsonOK(0);
} }
[HttpPost]
public JsonResult idchk(String id)
{
//이메일, 아이디 중복 체크
var u129 = Dao.Get<Users>("users.usersbyuserids", new Hashtable() { { "userids", "'"+id+"'" },{"usertype",1} });
if (u129.Count() > 0)
{
return JsonOK(-1);
}
return JsonOK(1);
}
} }
} }

View File

@ -511,6 +511,7 @@ namespace NP.Dao
} }
return 0; return 0;
} }
//private void logcompleted(IAsyncResult result) //private void logcompleted(IAsyncResult result)
//{ //{
// MySql.Data.MySqlClient.MySqlCommand command = (MySql.Data.MySqlClient.MySqlCommand)result.AsyncState; // MySql.Data.MySqlClient.MySqlCommand command = (MySql.Data.MySqlClient.MySqlCommand)result.AsyncState;

View File

@ -1411,3 +1411,11 @@ create table authkey (
,keytime datetime not null ,keytime datetime not null
,primary key(authtype,userno)); ,primary key(authtype,userno));
create table kcblog (
cdt datetime NOT NULL DEFAULT current_timestamp(),
cp_cd varchar(12) NOT NULL,
mobile varbinary(200) DEFAULT NULL,
vssn varchar(14) DEFAULT NULL,
logmsg mediumtext DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -1291,5 +1291,13 @@
delete from ncsd where ndno=#ncsno# delete from ncsd where ndno=#ncsno#
</isEqual> </isEqual>
</update> </update>
<update id="sys.kcblog.in" parameterClass="hashtable">
insert into kcblog (cdt,cp_cd,mobile,vssn,logmsg)
values(now(),#cp_cd#
,case when #mobile# is not null then HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)) else null end
,#vssn#
,#logmsg#
);
</update>
</statements> </statements>
</sqlMap> </sqlMap>

View File

@ -237,7 +237,7 @@
,case when c.refcode='9' then a.ccpositionetc else c.cname end ccpositionname ,case when c.refcode='9' then a.ccpositionetc else c.cname end ccpositionname
,case when a.usertype=1 then '교육생' when d.authname is null then '-' else d.authname end usertypestr ,case when a.usertype=1 then '교육생' when d.authname is null then '-' else d.authname end usertypestr
,CAST(AES_DECRYPT(UNHEX(a.birthday), <include refid="sql.digest"></include>) AS char) birthday ,CAST(AES_DECRYPT(UNHEX(a.birthday), <include refid="sql.digest"></include>) AS char) birthday
,a.uduty,a.slevel,a.isacceptmobile ,a.uduty,a.slevel,a.isacceptmobile,a.vssn
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.username</isNull>) rno ,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">a.username</isNull>) rno
,count(a.cdt) over() pagetotalcount ,count(a.cdt) over() pagetotalcount
from users a from users a
@ -267,6 +267,7 @@
CAST(AES_DECRYPT(UNHEX(a.mobile), <include refid="sql.digest"></include>) AS char) like concat('%',#mobile#,'%') CAST(AES_DECRYPT(UNHEX(a.mobile), <include refid="sql.digest"></include>) AS char) like concat('%',#mobile#,'%')
</isNotEmpty> </isNotEmpty>
<isNotNull property="usertypeover" prepend="and">a.usertype &gt; #usertypeover#</isNotNull> <isNotNull property="usertypeover" prepend="and">a.usertype &gt; #usertypeover#</isNotNull>
<isNotNull property="vssn" prepend="and">a.vssn = #vssn#</isNotNull>
) a ) a
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
order by a.rno order by a.rno
@ -285,9 +286,12 @@
where a.userno in ($usernos$) where a.userno in ($usernos$)
</select> </select>
<select id="users.checkuser" parameterClass="hashtable" resultClass="int"> <select id="users.checkuser" parameterClass="hashtable" resultClass="int">
select min(case when b.userid=#userid# then 1 else case when b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) then 2 else 9 end end) select min(case when b.userid=#userid# then 1
from (select 1 col1) a else case when b.usertype = 1 and #email# is not null and b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) then 2
left outer join users b on b.userno &gt; 0 <isNotNull property="usernonot">and b.userno &lt;&gt;#usernonot#</isNotNull> and (b.userid=#userid# or b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>))) else case when b.usertype = 1 and #mobile# is not null and b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)) then 3
else 9 end end end)
from (select 1 col1) a
left outer join users b on b.userno &gt; 0 <isNotNull property="usernonot">and b.userno &lt;&gt;#usernonot#</isNotNull> and (b.userid=#userid# or b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) or b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)))
</select> </select>
<insert id="users.in" parameterClass="hashtable"> <insert id="users.in" parameterClass="hashtable">
insert into users(usertype,userkind,userid,userpass,username,usernameeng insert into users(usertype,userkind,userid,userpass,username,usernameeng
@ -295,13 +299,13 @@
,asno,pasname,depart,ccposition,ccpositionetc,fgnoprofile,ccjobs ,asno,pasname,depart,ccposition,ccpositionetc,fgnoprofile,ccjobs
,userpno,bankname,bankno ,userpno,bankname,bankno
,post,address1,address2,introhtml,status,logintime,send335time,pwcalltime,pwcallno,eastereggkey,eetime,kfcfyear,isassignuser,edus ,post,address1,address2,introhtml,status,logintime,send335time,pwcalltime,pwcallno,eastereggkey,eetime,kfcfyear,isassignuser,edus
,isacceptmobile,uduty,slevel,jointype,birthday,<include refid="sql.inc"></include>) ,isacceptmobile,uduty,slevel,jointype,birthday,snsid,rrnum,di,ci,vssn,<include refid="sql.inc"></include>)
values (#usertype#,#userkind#,#userid#,#userpass#,#username#,#usernameeng# values (#usertype#,#userkind#,#userid#,#userpass#,#username#,#usernameeng#
,gender,HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)),#isacceptemail#,HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)),HEX(AES_ENCRYPT(#telno#, <include refid="sql.digest"></include>)) ,gender,HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)),#isacceptemail#,HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)),HEX(AES_ENCRYPT(#telno#, <include refid="sql.digest"></include>))
,#asno#,#pasname#,#depart#,#ccposition#,#ccpositionetc#,#fgnoprofile#,#ccjobs# ,#asno#,#pasname#,#depart#,#ccposition#,#ccpositionetc#,#fgnoprofile#,#ccjobs#
,HEX(AES_ENCRYPT(#userpno#, <include refid="sql.digest"></include>)),#bankname#,HEX(AES_ENCRYPT(#bankno#, <include refid="sql.digest"></include>)) ,HEX(AES_ENCRYPT(#userpno#, <include refid="sql.digest"></include>)),#bankname#,HEX(AES_ENCRYPT(#bankno#, <include refid="sql.digest"></include>))
,#post#,#address1#,#address2#,#introhtml#,#status#,<include refid="sql.now"></include>,null,null,null,null,null,#kfcfyear#,#isassignuser#,#edus# ,#post#,#address1#,#address2#,#introhtml#,#status#,<include refid="sql.now"></include>,null,null,null,null,null,#kfcfyear#,#isassignuser#,#edus#
,#isacceptmobile#,#uduty#,#slevel#,0,HEX(AES_ENCRYPT(#birthday#, <include refid="sql.digest"></include>)),<include refid="sql.inv"></include>); ,#isacceptmobile#,#uduty#,#slevel#,#jointype#,HEX(AES_ENCRYPT(#birthday#, <include refid="sql.digest"></include>)),#snsid#,HEX(AES_ENCRYPT(#rrnum#, <include refid="sql.digest"></include>)),#di#,#ci#,#vssn#,<include refid="sql.inv"></include>);
<selectKey type="post" property="userno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="userno" resultClass="int">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>

View File

@ -8,6 +8,9 @@ using NP.Model;
using System.Security.Claims; using System.Security.Claims;
using System.Collections; using System.Collections;
using System.Text; using System.Text;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using OkCert3Com;
namespace NP.FO.Controllers namespace NP.FO.Controllers
{ {
@ -59,7 +62,7 @@ namespace NP.FO.Controllers
if (Url.IsLocalUrl(returnUrl)){return Redirect(returnUrl);} if (Url.IsLocalUrl(returnUrl)){return Redirect(returnUrl);}
else {return RedirectToAction(nameof(HomeController.Index), "Home");} else {return RedirectToAction(nameof(HomeController.Index), "Home");}
} }
public ActionResult Join() public ActionResult Join(VMUser vm)
{ {
//if ("Y".Equals(GetConfig("usessl")) && !Request.IsSecureConnection) //if ("Y".Equals(GetConfig("usessl")) && !Request.IsSecureConnection)
//{ //{
@ -67,12 +70,16 @@ namespace NP.FO.Controllers
//} //}
//else //else
//{ //{
ViewBag.JoinOK = false; if(vm.User == null)
if (GetInt(Request["intval"]) == 1) {
{ vm.User = new Users() { };
ViewBag.JoinOK = true; }
} ViewBag.JoinOK = false;
return View(); if (GetInt(Request["intval"]) == 1)
{
ViewBag.JoinOK = true;
}
return View(vm);
//} //}
} }
public ActionResult CallOrder(){return View();} public ActionResult CallOrder(){return View();}
@ -435,5 +442,399 @@ namespace NP.FO.Controllers
} }
return RedirectToAction("Index"); return RedirectToAction("Index");
} }
public ActionResult JoinTSel()
{
return View();
}
public ActionResult JoinIdVeri()
{
return View();
}
/// <summary>
/// 본인인증 요청(mobile(가입이전,휴대폰인증),ipin)
/// </summary>
/// <param name="sel"></param>
/// <returns></returns>
public ActionResult CertOk3Req(String sel)
{
String CP_CD = "V47690000000";
String SITE_NAME = "YNICTE";
String REQ_SITE_NM = "YNICTE";
String REQ_URL = "";
String RETURN_MSG = "";
String SITE_URL = GetConfig("fronturl");
String RQST_CAUS_CD = "00";
String target = "PROD";
String param = null;
String RSLT_CD = null;
String RSLT_MSG = null;
String MDL_TKN = null;
String TX_SEQ_No = null;
String RETURN_URL = "";
String RTN_URL = "";
String CHNL_CD = "";
String license = "";
String svcName = "";
ViewBag.sel = sel;
ViewBag.tcUrl = "";
ViewBag.PopupUrl = "";
//return url 설정
RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel;
RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel;
//모바일팝업
if (sel == "MOBI" || sel == "MCHK")
{
license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat";
svcName = "IDS_HS_POPUP_START";
ViewBag.tcUrl = "kcb.oknm.online.safehscert.popup.cmd.P931_CertChoiceCmd";
ViewBag.PopupUrl = "https://safe.ok-name.co.kr/CommonSvl";
}
else if (sel == "IPIN")
{
license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat";
svcName = "TIS_IPIN_POPUP_START";
ViewBag.tcUrl = "kcb.tis.ti.cmd.LoginRPCert3Cmd";
ViewBag.PopupUrl = "https://ipin.ok-name.co.kr/CommonSvl";
}
JObject reqJson = new JObject();
reqJson.Add("RETURN_URL", RETURN_URL);
reqJson.Add("REQ_SITE_NM", REQ_SITE_NM);
reqJson.Add("REQ_URL", REQ_URL);
reqJson.Add("RTN_URL", RTN_URL);
reqJson.Add("SITE_NAME", SITE_NAME);
reqJson.Add("SITE_URL", SITE_URL);
reqJson.Add("CHNL_CD", CHNL_CD);
reqJson.Add("RQST_CAUS_CD", RQST_CAUS_CD);
reqJson.Add("RETURN_MSG", RETURN_MSG);
param = JsonConvert.SerializeObject(reqJson);
reqJson.RemoveAll();
reqJson = null;
//OkCert3 실행1
OkCert3 myObject = new OkCert3Com.OkCert3() { };
//객체생성실패
if (myObject == null)
{
ViewBag.result = null;
}
else
{
//모듈호출, 결과
dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut);
ViewBag.ret = ret;
if (ret != 0)
{
ViewBag.result = null;
}
else
{
JObject outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString()));
RSLT_CD = outputobj["RSLT_CD"].ToString();
RSLT_MSG = outputobj["RSLT_MSG"].ToString();
MDL_TKN = outputobj["MDL_TKN"].ToString();
TX_SEQ_No = outputobj["TX_SEQ_NO"].ToString();
}
}
ViewBag.result = CP_CD + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + MDL_TKN + ":" + TX_SEQ_No;
return View();
}
/// <summary>
/// 휴대폰인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3MOBI()
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
String target = "PROD";
String svcName = "IDS_HS_POPUP_RESULT";
String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat";
String TX_SEQ_NO = null;
String RSLT_CD = null;
String RSLT_MSG = null;
String RSLT_NAME = null;
String RSLT_BIRTHDAY = null;
String RSLT_SEX_CD = null;
String RSLT_NTV_FRNR_CD = null;
String DI = null;
String CI = null;
String CI_UPDATE = null;
String TEL_COM_CD = null;
String TEL_NO = null;
String RETURN_MSG = null;
JObject reqJson = new JObject();
JObject outputobj = new JObject();
reqJson.Add("MDL_TKN", MDL_TKN);
String param = JsonConvert.SerializeObject(reqJson);
reqJson.RemoveAll();
reqJson = null;
OkCert3 myObject = new OkCert3Com.OkCert3() { };
if (myObject == null)
{
RETURN_MSG = null;
}
else
{
dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut);
ViewBag.ret = ret;
myObject = null;
outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString()));
TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString();
RSLT_CD = outputobj["RSLT_CD"].ToString();
RSLT_MSG = outputobj["RSLT_MSG"].ToString();
RETURN_MSG = outputobj["RETURN_MSG"].ToString();
if (RSLT_CD == "B000")
{
RSLT_NAME = outputobj["RSLT_NAME"].ToString();
RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString();
RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString();
RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString();
DI = outputobj["DI"].ToString();
CI = outputobj["CI"].ToString();
CI_UPDATE = outputobj["CI_UPDATE"].ToString();
TEL_COM_CD = outputobj["TEL_COM_CD"].ToString();
TEL_NO = outputobj["TEL_NO"].ToString();
//Users users = new Users()
//{
// username = RSLT_NAME,
// birthday = RSLT_BIRTHDAY,
// di=DI,
// mobile = TEL_NO,
// jointype=0
//};
TEL_NO = string.IsNullOrEmpty(TEL_NO) || TEL_NO.Replace("-", "").Length < 10 ? (TEL_NO ?? "") : TEL_NO.Replace("-", "").Length == 10 ? string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 3), TEL_NO.Replace("-", "").Substring(6)) : string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 4), TEL_NO.Replace("-", "").Substring(7));
if (!string.IsNullOrEmpty(TEL_NO))
{
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U001";
RSLT_MSG = "휴대폰 번호 오류";
}
}
outputobj = null;
mOut = null;
ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":"
+ RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":"
+ DI + ":" + CI + ":" + CI_UPDATE + ":" + TEL_COM_CD + ":"
+ TEL_NO + ":" + RETURN_MSG;
Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "mobile", TEL_NO }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } });
}
return View();
}
/// <summary>
/// 휴대폰인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3MCHK()
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
String target = "PROD";
String svcName = "IDS_HS_POPUP_RESULT";
String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat";
String TX_SEQ_NO = null;
String RSLT_CD = null;
String RSLT_MSG = null;
String RSLT_NAME = null;
String RSLT_BIRTHDAY = null;
String RSLT_SEX_CD = null;
String RSLT_NTV_FRNR_CD = null;
String DI = null;
String CI = null;
String CI_UPDATE = null;
String TEL_COM_CD = null;
String TEL_NO = null;
String RETURN_MSG = null;
JObject reqJson = new JObject();
JObject outputobj = new JObject();
reqJson.Add("MDL_TKN", MDL_TKN);
String param = JsonConvert.SerializeObject(reqJson);
reqJson.RemoveAll();
reqJson = null;
OkCert3 myObject = new OkCert3Com.OkCert3() { };
if (myObject == null)
{
RETURN_MSG = null;
}
else
{
dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut);
ViewBag.ret = ret;
myObject = null;
outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString()));
TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString();
RSLT_CD = outputobj["RSLT_CD"].ToString();
RSLT_MSG = outputobj["RSLT_MSG"].ToString();
RETURN_MSG = outputobj["RETURN_MSG"].ToString();
if (RSLT_CD == "B000")
{
RSLT_NAME = outputobj["RSLT_NAME"].ToString();
RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString();
RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString();
RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString();
DI = outputobj["DI"].ToString();
CI = outputobj["CI"].ToString();
CI_UPDATE = outputobj["CI_UPDATE"].ToString();
TEL_COM_CD = outputobj["TEL_COM_CD"].ToString();
TEL_NO = outputobj["TEL_NO"].ToString();
//Users users = new Users()
//{
// username = RSLT_NAME,
// birthday = RSLT_BIRTHDAY,
// di=DI,
// mobile = TEL_NO,
// jointype=0
//};
TEL_NO = string.IsNullOrEmpty(TEL_NO) || TEL_NO.Replace("-", "").Length < 10 ? (TEL_NO ?? "") : TEL_NO.Replace("-", "").Length == 10 ? string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 3), TEL_NO.Replace("-", "").Substring(6)) : string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 4), TEL_NO.Replace("-", "").Substring(7));
if (!string.IsNullOrEmpty(TEL_NO))
{
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U001";
RSLT_MSG = "휴대폰 번호 오류";
}
}
outputobj = null;
mOut = null;
ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":"
+ RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":"
+ DI + ":" + CI + ":" + CI_UPDATE + ":" + TEL_COM_CD + ":"
+ TEL_NO + ":" + RETURN_MSG;
Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "mobile", TEL_NO }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } });
}
return View();
}
/// <summary>
/// IPIN인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3IPIN()
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
String target = "PROD";
String svcName = "TIS_IPIN_POPUP_RESULT";
String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat";
String TX_SEQ_NO = null;
String RSLT_CD = null;
String RSLT_MSG = null;
String RSLT_NAME = null;
String RSLT_BIRTHDAY = null;
String RSLT_SEX_CD = null;
String RSLT_NTV_FRNR_CD = null;
String DI = null;
String CI = null;
String CI_UPDATE = null;
String VSSN = null;
String RETURN_MSG = null;
JObject reqJson = new JObject();
JObject outputobj = new JObject();
reqJson.Add("MDL_TKN", MDL_TKN);
String param = JsonConvert.SerializeObject(reqJson);
reqJson.RemoveAll();
reqJson = null;
OkCert3 myObject = new OkCert3Com.OkCert3() { };
if (myObject == null)
{
RETURN_MSG = null;
}
else
{
dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut);
ViewBag.ret = ret;
myObject = null;
outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString()));
TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString();
RSLT_CD = outputobj["RSLT_CD"].ToString();
RSLT_MSG = outputobj["RSLT_MSG"].ToString();
RETURN_MSG = outputobj["RETURN_MSG"].ToString();
if (RSLT_CD == "T000")
{
RSLT_NAME = outputobj["RSLT_NAME"].ToString();
RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString();
RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString();
RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString();
DI = outputobj["DI"].ToString();
CI = outputobj["CI"].ToString();
CI_UPDATE = outputobj["CI_UPDATE"].ToString();
VSSN = outputobj["VSSN"].ToString();
//Users users = new Users()
//{
// username = RSLT_NAME,
// birthday = RSLT_BIRTHDAY,
// di = DI,
// ci = CI,
// vssn = VSSN,
// jointype = 0
//};
if (!string.IsNullOrEmpty(VSSN))
{
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "vssn", VSSN } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U001";
RSLT_MSG = "ipin 번호 오류";
}
}
outputobj = null;
mOut = null;
ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":"
+ RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":"
+ DI + ":" + CI + ":" + CI_UPDATE + ":" + VSSN + ":"
+ RETURN_MSG;
//vm.stringval = "CP_CD:" + CP_CD + "&RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG;
Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { {"cp_cd",CP_CD },{"vssn", VSSN}, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } });
}
return View();
}
} }
} }

View File

@ -120,6 +120,7 @@ namespace NP.FO.Controllers
else if (!Request.Url.AbsolutePath.ToUpper().StartsWith("/OPEN/") && else if (!Request.Url.AbsolutePath.ToUpper().StartsWith("/OPEN/") &&
!Request.Url.AbsolutePath.ToUpper().StartsWith("/HOME/POPUP") && !Request.Url.AbsolutePath.ToUpper().StartsWith("/HOME/POPUP") &&
!Request.Url.AbsolutePath.ToUpper().StartsWith("/ACCOUNT/ERROR") && !Request.Url.AbsolutePath.ToUpper().StartsWith("/ACCOUNT/ERROR") &&
!Request.Url.AbsolutePath.ToUpper().StartsWith("/ACCOUNT/CERTOK3") &&
Request.Url.AbsolutePath.ToUpper() != "/ACCOUNT/ADMINEE") Request.Url.AbsolutePath.ToUpper() != "/ACCOUNT/ADMINEE")
{ {
filterContext.Result = new RedirectResult("/Account/Error"); filterContext.Result = new RedirectResult("/Account/Error");

View File

@ -68,6 +68,10 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\References\NPDao.dll</HintPath> <HintPath>..\References\NPDao.dll</HintPath>
</Reference> </Reference>
<Reference Include="OkCert3ComLib">
<HintPath>..\References\OkCert3ComLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Spring.Aop, Version=2.0.1.45000, Culture=neutral, PublicKeyToken=65e474d141e25e07, processorArchitecture=MSIL"> <Reference Include="Spring.Aop, Version=2.0.1.45000, Culture=neutral, PublicKeyToken=65e474d141e25e07, processorArchitecture=MSIL">
<HintPath>..\packages\Spring.Aop.2.0.1\lib\net45\Spring.Aop.dll</HintPath> <HintPath>..\packages\Spring.Aop.2.0.1\lib\net45\Spring.Aop.dll</HintPath>
</Reference> </Reference>
@ -588,6 +592,13 @@
<Content Include="Views\My\CertPrint.cshtml" /> <Content Include="Views\My\CertPrint.cshtml" />
<Content Include="Views\My\CertSet.cshtml" /> <Content Include="Views\My\CertSet.cshtml" />
<Content Include="Views\Home\IndexSample.cshtml" /> <Content Include="Views\Home\IndexSample.cshtml" />
<Content Include="Views\Account\JoinIdVeri.cshtml" />
<Content Include="Views\Account\JoinTSel.cshtml" />
<Content Include="Views\Shared\Partial\OkCert3.cshtml" />
<Content Include="Views\Account\CertOk3Req.cshtml" />
<Content Include="Views\Account\CertOk3MOBI.cshtml" />
<Content Include="Views\Account\CertOk3IPIN.cshtml" />
<Content Include="Views\Account\CertOk3MCHK.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />

View File

@ -0,0 +1,44 @@
@{
Layout = null;
var CP_CD = (ViewBag.result ?? "").Split(':')[0];
var TX_SEQ_NO = (ViewBag.result ?? "").Split(':')[1];
var RSLT_CD = (ViewBag.result ?? "").Split(':')[2];
var RSLT_MSG = (ViewBag.result ?? "").Split(':')[3];
var RSLT_NAME = (ViewBag.result ?? "").Split(':')[4];
var RSLT_BIRTHDAY = (ViewBag.result ?? "").Split(':')[5];
var RSLT_SEX_CD = (ViewBag.result ?? "").Split(':')[6];
var RSLT_NTV_FRNR_CD = (ViewBag.result ?? "").Split(':')[7];
var DI = (ViewBag.result ?? "").Split(':')[8];
var CI = (ViewBag.result ?? "").Split(':')[9];
var CI_UPDATE = (ViewBag.result ?? "").Split(':')[10];
var VSSN = (ViewBag.result ?? "").Split(':')[11];
var RETURN_MSG = (ViewBag.result ?? "").Split(':')[12];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<div>
</div>
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'T000') {
$(opener.document).find("#mform").find("#User_username").val("@(RSLT_NAME)");
$(opener.document).find("#mform").find("#User_birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#User_vssn").val("@(VSSN)");
$(opener.document).find("#mform").find("#User_di").val("@(DI)");
$(opener.document).find("#mform").find("#User_ci").val("@(CI)");
$(opener.document).find("#mform").find("#User_jointype").val(0);
$(opener.document).find("#mform").attr("action", "/Account/Join");
$(opener.document).find("#mform").submit();
self.close();
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();
}
} else {
alert("인증결과 요청 실패 :" + "@(ViewBag.ret)");
self.close();
}
});
</script>

View File

@ -0,0 +1,47 @@
@{
Layout = null;
var CP_CD = (ViewBag.result ?? "").Split(':')[0];
var TX_SEQ_NO = (ViewBag.result ?? "").Split(':')[1];
var RSLT_CD = (ViewBag.result ?? "").Split(':')[2];
var RSLT_MSG = (ViewBag.result ?? "").Split(':')[3];
var RSLT_NAME = (ViewBag.result ?? "").Split(':')[4];
var RSLT_BIRTHDAY = (ViewBag.result ?? "").Split(':')[5];
var RSLT_SEX_CD = (ViewBag.result ?? "").Split(':')[6];
var RSLT_NTV_FRNR_CD = (ViewBag.result ?? "").Split(':')[7];
var DI = (ViewBag.result ?? "").Split(':')[8];
var CI = (ViewBag.result ?? "").Split(':')[9];
var CI_UPDATE = (ViewBag.result ?? "").Split(':')[10];
var TEL_COM_CD = (ViewBag.result ?? "").Split(':')[11];
var TEL_NO = (ViewBag.result ?? "").Split(':')[12];
var RETURN_MSG = (ViewBag.result ?? "").Split(':')[13];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<div>
</div>
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'B000') {
//이름일치 확인
if ("@(RSLT_NAME)" == $(opener.document).find("#mform").find("#User_username").val()) {
$(opener.document).find("#mform").find("#intval2").val(1);
$(opener.document).find("#mform").find("#mobile").val("@(TEL_NO)".replaceAll("-", ""));
alert("인증완료");
} else {
$(opener.document).find("#mform").find("#intval2").val(0);
$(opener.document).find("#mform").find("#mobile").val("");
alert("입력한 정보와 일치하지 않습니다.\n 재인증해주세요.");
}
self.close();
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();
}
} else {
alert("인증결과 요청 실패 :" + "@(ViewBag.ret)");
self.close();
}
});
</script>

View File

@ -0,0 +1,46 @@
@{
Layout = null;
var CP_CD = (ViewBag.result ?? "").Split(':')[0];
var TX_SEQ_NO = (ViewBag.result ?? "").Split(':')[1];
var RSLT_CD = (ViewBag.result ?? "").Split(':')[2];
var RSLT_MSG = (ViewBag.result ?? "").Split(':')[3];
var RSLT_NAME = (ViewBag.result ?? "").Split(':')[4];
var RSLT_BIRTHDAY = (ViewBag.result ?? "").Split(':')[5];
var RSLT_SEX_CD = (ViewBag.result ?? "").Split(':')[6];
var RSLT_NTV_FRNR_CD = (ViewBag.result ?? "").Split(':')[7];
var DI = (ViewBag.result ?? "").Split(':')[8];
var CI = (ViewBag.result ?? "").Split(':')[9];
var CI_UPDATE = (ViewBag.result ?? "").Split(':')[10];
var TEL_COM_CD = (ViewBag.result ?? "").Split(':')[11];
var TEL_NO = (ViewBag.result ?? "").Split(':')[12];
var RETURN_MSG = (ViewBag.result ?? "").Split(':')[13];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<div>
</div>
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'B000') {
$(opener.document).find("#mform").find("#User_username").val("@(RSLT_NAME)");
$(opener.document).find("#mform").find("#User_birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#User_mobile").val("@(TEL_NO)");
$(opener.document).find("#mform").find("#User_di").val("@(DI)");
$(opener.document).find("#mform").find("#User_ci").val("@(CI)");
$(opener.document).find("#mform").find("#intval2").val(1);
$(opener.document).find("#mform").find("#User_jointype").val(0);
$(opener.document).find("#mform").attr("action", "/Account/Join");
$(opener.document).find("#mform").submit();
self.close();
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();
}
} else {
alert("인증결과 요청 실패 :" + "@(ViewBag.ret)");
self.close();
}
});
</script>

View File

@ -0,0 +1,70 @@
@{
Layout = null;
var CP_CD = (ViewBag.result ?? "").Split(':')[0];
var RSLT_CD = (ViewBag.result ?? "").Split(':')[1];
var RSLT_MSG = (ViewBag.result ?? "").Split(':')[2];
var MDL_TKN = (ViewBag.result ?? "").Split(':')[3];
var TX_SEQ_NO = (ViewBag.result ?? "").Split(':')[4];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<div>
<form name="form1">
<!-- 인증 요청 정보 -->
<!--// 필수 항목 -->
@if (ViewBag.sel == "MOBI" || ViewBag.sel == "MCHK")
{
<input type="hidden" name="tc" value="@(ViewBag.tcUrl)" /> <!-- 변경불가-->
<input type="hidden" name="cp_cd" value="@(CP_CD)"> <!-- 회원사코드 -->
<input type="hidden" name="mdl_tkn" value="@(MDL_TKN)"> <!-- 토큰 -->
<input type="hidden" name="target_id" value="">
}else if(ViewBag.sel == "IPIN")
{
<input type="hidden" name="tc" value="@(ViewBag.tcUrl)"/> <!-- 변경불가-->
<input type="hidden" name="cpCd" value="@(CP_CD)"> <!-- 회원사코드 -->
<input type="hidden" name="mdlTkn" value="@(MDL_TKN)"> <!-- 토큰 -->
}
<!-- 필수 항목 //-->
</form>
</div>
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
//모바일일경우
if ('@(ViewBag.sel)' == 'MOBI' || '@(ViewBag.sel)' == 'MCHK') {
if ('@(RSLT_CD)' == 'B000') {
window.opener.bglayer(false);
request();
} else {
alert("인증요청 실패 : " + "@(RSLT_CD)" + " | " + "@(RSLT_MSG)");
setTimeout(function () {
self.close();
}, 500);
}
//IPIN일경우
} else if ('@(ViewBag.sel)' == 'IPIN' || '@(ViewBag.sel)' == 'CARD') {
if ('@(RSLT_CD)' == 'T300') {
request();
} else {
alert("인증요청 실패 : " + "@(RSLT_CD)" + " | " + "@(RSLT_MSG)");
setTimeout(function () {
self.close();
}, 500);
}
}
} else {
alert("인증결과 요청 실패 :" + "@(ViewBag.ret)");
setTimeout(function () {
self.close();
}, 500);
}
});
function request() {
document.form1.action = "@(ViewBag.PopupUrl)";
document.form1.method = "post";
document.form1.submit();
}
</script>

View File

@ -1,4 +1,5 @@
@{ @model NP.Model.VMUser
@{
var menus = (List<NP.Model.MenuPage>)ViewBag.Menus; var menus = (List<NP.Model.MenuPage>)ViewBag.Menus;
var em = new NP.Model.MenuPage(); var em = new NP.Model.MenuPage();
var mainprivate = (menus.Where(w => w.refcode == "main.private").FirstOrDefault() ?? em); var mainprivate = (menus.Where(w => w.refcode == "main.private").FirstOrDefault() ?? em);
@ -6,38 +7,115 @@
} }
@if (ViewBag.JoinOK) @if (ViewBag.JoinOK)
{ {
<ul class="jnStep">
<li><div><div><span>1. 본인인증</span></div></div></li>
<li><div><div><span>2. 신청서 작성</span></div></div></li>
<li class="current"><div><div><span>3. 회원가입완료</span></div></div></li>
</ul>
<div class="joinScss"> <div class="joinScss">
<h5><span>영남건설기술교육원</span> <span>가입해주셔서 감사합니다.</span></h5> <h5>회원가입이 완료되었습니다.</h5>
<p><span>회원가입이 완료되었으며, 아래 버튼을 클릭해주셔서 </span><span>로그인을 진행해주세요.</span></p> <p>아래 버튼을 클릭해주셔서 로그인을 진행해주세요.</p>
<a href="/Account/Index">로그인 페이지로 이동</a> <a href="/Account/Index" class="blu">로그인 페이지로 이동</a>
</div> <a href="#">SNS 계정 연동</a>
</div>
} }
else else
{ {
<ul class="jnStep">
<li><div><div><span>1. 본인인증</span></div></div></li>
<li class="current"><div><div><span>2. 신청서 작성</span></div></div></li>
<li><div><div><span>3. 회원가입완료</span></div></div></li>
</ul>
<form action="/Account/Join" id="mform" method="post"> <form action="/Account/Join" id="mform" method="post">
@Html.HiddenFor(w => w.User.birthday)
@Html.HiddenFor(w => w.User.username)
@Html.HiddenFor(w => w.User.mobile)
@Html.HiddenFor(w => w.User.vssn)
@Html.HiddenFor(w => w.User.di)
@Html.HiddenFor(w => w.User.ci)
@*모바일인증*@
@Html.HiddenFor(w => w.intval2)
@*가입유형 0:일반회원가입,1:google,2:naver,3:카카오*@
@Html.HiddenFor(w => w.User.jointype)
@Html.HiddenFor(w => w.IsSaveOK)
<input type="hidden" name="jointype" id="jointype" value="@(Model.User.jointype)" />
<input type="hidden" name="di" id="di" value="@(Model.User.di)" />
<input type="hidden" name="ci" id="ci" value="@(Model.User.ci)" />
<input type="hidden" name="vssn" id="vssn" value="@(Model.User.vssn)" />
<input type="hidden" name="rrnum" id="rrnum" />
<input type="hidden" name="intval" id="intval" value="0" />
<div class="joinForm"> <div class="joinForm">
<ul> <ul>
<li><input type="text" id="userid" style="ime-mode:inactive" name="userid" placeholder="아이디(이메일)" maxlength="50" /></li> <li><input type="text" id="username" name="username" placeholder="이름" value="@(Model.User.username)" @(!string.IsNullOrEmpty(Model.User.username) ? Html.Raw("readonly=\"\" style=\"background-color:#ddd;\"") : Html.Raw(""))></li>
<li><input type="password" id="userpass" name="userpass" placeholder="비밀번호" /></li> <li><input type="text" id="email" style="ime-mode:inactive" name="email" maxlength="50" placeholder="이메일"></li>
<li><input type="password" id="userpass2" placeholder="비밀번호확인" /></li> <li class="joinId">
<li><input type="text" id="username" name="username" placeholder="이름" /></li> <input type="text" id="userid" style="ime-mode:inactive" name="userid" placeholder="아이디" maxlength="50">
@*<li><input type="text" id="email" style="ime-mode:inactive" name="email" maxlength="50" placeholder="이메일" /></li>*@ <a href="#" onclick="idcheck();">중복여부 체크</a>
<li><input type="text" id="mobile" class="int nocomma" name="mobile" maxlength="13" placeholder="휴대전화번호" /></li> </li>
<li>
<input type="password" id="userpass" name="userpass" placeholder="비밀번호">
<span class="red">영어, 숫자, 특수문자를 모두 포함하여 비밀번호를 설정해주세요.</span>
</li>
<li><input type="password" id="userpass2" placeholder="비밀번호확인"></li>
<li>
<ul class="jnNum">
<li><input type="text" id="rrnum1" value="@((Model.User.birthday ?? "").Substring(2))" @(!string.IsNullOrEmpty(Model.User.birthday) ? Html.Raw("readonly=\"\" style=\"background-color:#ddd;\"") : Html.Raw(""))></li>
<li>-</li>
<li><input type="tel" id="rrnum2" placeholder="주민등록번호 뒤 7자리"></li>
</ul>
</li>
@*인증완료상태여도 재인증 가능*@
<li class="joinId">
<input type="text" id="mobile" class="int nocomma" name="mobile" maxlength="13" placeholder="휴대전화번호" value="@(Model.User.mobile)" readonly="" style="background-color:#ddd;" )>
<a href="#" onclick="mobchk();">인증</a>
</li>
<li>
<ul class="jnAddr postbox">
<li>
<input type="hidden" id="post" name="post" class="postno" readonly="" style="background-color:#ddd;">
<input type="text" name="address1" id="address1" class="postadr" readonly="" style="background-color:#ddd;" placeholder="주소입력">
</li>
<li><a href="#" onclick="getpost2(this);">우편번호검색</a></li>
<li><input type="text" name="address2" id="address2" class="postadrsub" placeholder="나머지 주소 입력"></li>
</ul>
</li>
<li class="joinCpny"> <li class="joinCpny">
<input type="hidden" id="asno" name="asno" /> <input type="hidden" id="asno" name="asno" />
<input type="text" id="asname" placeholder="직장" readonly="readonly" disabled style="background-color: #ddd;" /> <input type="text" id="asname" placeholder="직장" readonly="readonly" disabled style="background-color: #ddd;" />
<a href="#" onclick="boxassignview()">검색</a> <a href="#" onclick="boxassignview()">검색</a>
</li> </li>
<li>
<ul class="jnType">
<li><input type="radio" name="isassignuser" value="1" id="userType1"><label for="userType1">정규직</label></li>
<li><input type="radio" name="isassignuser" value="0" id="userType0"><label for="userType0">비정규직</label></li>
</ul>
</li>
<li><input type="text" name="uduty" id="uduty" placeholder="직위"></li>
<li>
<ul class="jnType">
<li><input type="radio" name="slevel" value="1" id="lv1"><label for="lv1">고졸</label></li>
<li><input type="radio" name="slevel" value="2" id="lv2"><label for="lv2">학사</label></li>
<li><input type="radio" name="slevel" value="3" id="lv3"><label for="lv3">석사</label></li>
<li><input type="radio" name="slevel" value="4" id="lv4"><label for="lv4">박사</label></li>
<li><input type="radio" name="slevel" value="5" id="lv0"><label for="lv0">기타</label></li>
</ul>
</li>
</ul> </ul>
<div class="joinAgree"> <div class="joinAgree">
<input type="checkbox" id="agree" /> <input type="checkbox" id="agree">
<label for="agree">영남건설기술교육원의 <a href="#" onclick="viewlayer(@(mainagree.pno), this, '이용약관');">이용약관,</a> <a href="#" onclick="viewlayer(@(mainprivate.pno), this, '개인정보처리방침');">개인정보 처리방침</a>에 동의합니다.</label> <label for="agree"><a href="#" onclick="viewlayer(@(mainagree.pno), this, '이용약관');">이용약관,</a> <a href="#" onclick="viewlayer(@(mainprivate.pno), this, '개인정보처리방침');">개인정보 처리방침</a>에 동의합니다.</label>
</div> </div>
<a href="#" class="joinBtn" onclick="save()">동의 후 가입</a> <a href="#" class="joinBtn" onclick="save()">동의 후 가입</a>
</div> </div>
<input type="hidden" name="intval" id="intval" value="0" /> @Html.Partial("./Partial/BoxAssign", null, new ViewDataDictionary { { "bindmethod", "bindassign" }, { "isjoin", 1 } })
@Html.Partial("./Partial/OkCert3", null, new ViewDataDictionary { })
</form> </form>
@Html.Partial("./Partial/BoxAssign", null, new ViewDataDictionary { { "bindmethod", "bindassign" },{"isjoin",1 } }) <div id="postlayer" class="daumpost"><a href="#" class="btn btn-xxs btn-select closedaumpost" onclick="closeDaumPostcode();">close</a></div>
}
@section scriptsHeader{
@Html.Partial("./Partial/ScriptPost")
} }
@section scripts{ @section scripts{
<script> <script>
@ -52,27 +130,55 @@ else
}); });
function save() { function save() {
setv("userid", val("userid").replace(/ /, '').replace(/ /, '')); setv("userid", val("userid").replace(/ /, '').replace(/ /, ''));
setv("rrnum", val("rrnum1").replace(/ /, '').replace(/ /, '') + "" + val("rrnum2").replace(/ /, '').replace(/ /, ''));
setv("userpass", val("userpass").replace(/ /, '').replace(/ /, '')); setv("userpass", val("userpass").replace(/ /, '').replace(/ /, ''));
setv("username", val("username").replace(/ /, '').replace(/ /, '')); setv("username", val("username").replace(/ /, '').replace(/ /, ''));
//setv("email", val("email").replace(/ /, '').replace(/ /, '')); setv("email", val("email").replace(/ /, '').replace(/ /, ''));
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, '')); setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
setv("mobile", formatmobile(val("mobile"))); setv("mobile", formatmobile(val("mobile")));
//var userid = val("userid").replace(/[^(0-9a-zA-Z)]/gi, ''); //var userid = val("userid").replace(/[^(0-9a-zA-Z)]/gi, '');
if (check("userid", null, "아이디를 입력해주세요.")) { } if (check("username", null, "이름을 입력해주세요.")) { }
else if (getBytes(val("userid")) < 5) { focus("userid"); msg("5글자 이상의 아이디를 입력해주세요."); } else if (check("email", null, "이메일주소를 입력해주세요.")) { }
else if (!isemail(val("userid"))) { focus("userid"); msg("ID는 이메일 형식으로 입력해주세요."); } else if (!isemail(val("email"))) { focus("email"); msg("올바른 이메일주소를 입력해주세요."); }
else if (check("userid", null, "아이디를 입력해주세요.")) { }
else if (getBytes(val("userid")) < 5) { focus("userid"); msg("(5자이상, 영문/숫자/-/_) 규칙으로 아이디를 입력해주세요."); }
else if (!isid(val("userid"))) { focus("userid"); msg("(5자이상, 영문/숫자/-/_) 규칙으로 아이디를 입력해주세요."); }
else if (val("IsSaveOK") != 1) { focus("userid"); msg("중복여부체크를 진행해주세요"); }
else if (check("userpass", null, "비밀번호를 입력해주세요.")) { } else if (check("userpass", null, "비밀번호를 입력해주세요.")) { }
else if (!ispassword(val("userpass"))) { focus("userpass"); msg("(8자 이상, 영문/숫자/특수기호 포함) 규칙으로 비밀번호를 입력해주세요."); } else if (!ispassword(val("userpass"))) { focus("userpass"); msg("(8자 이상, 영문/숫자/특수기호 포함) 규칙으로 비밀번호를 입력해주세요."); }
else if (val("userpass") != val("userpass2")) { focus("userpass2"); msg("비밀번호 확인이 다릅니다."); } else if (val("userpass") != val("userpass2")) { focus("userpass2"); msg("비밀번호 확인이 다릅니다."); }
else if (check("username", null, "이름을 입력해주세요.")) { } else if (check("rrnum", null, "주민등록번호를 입력해주세요")) { }
//else if (!isemail(val("email"))) { focus("email"); msg("올바른 이메일주소를 입력해주세요."); } else if (getBytes(val("rrnum")) != 13) { focus("rrnum2"); msg("주민등록번호를 확인해주세요");}
else if (!ismobilenumber(val("mobile"))) {focus("mobile");msg("핸드폰번호를 확인해주세요.");} else if (!ismobilenumber(val("mobile"))) {focus("mobile");msg("핸드폰번호를 확인해주세요.");}
else if (check("asno", null, "직장을 등록해주세요.")){ } else if (check("post", null, "우편번호를 등록해주세요.") || check("address1", null, "우편번호를 등록해주세요.") || check("address2", null, "우편번호를 등록해주세요.")) { }
else if (check("asno", null, "직장을 등록해주세요.")) { }
else if ($("input:radio[name='isassignuser']:checked").val() == null) { msg("채용형태를 선택해주세요"); }
else if (check("uduty", null, "직위를 입력해주세요.")) { }
else if ($("input:radio[name='slevel']:checked").val() == null) { msg("학력을 선택해주세요"); }
else if (!$("#agree").prop("checked")) { $("#agree").focus(); msg("이용약관/개인정보처리방침에 동의해주세요."); } else if (!$("#agree").prop("checked")) { $("#agree").focus(); msg("이용약관/개인정보처리방침에 동의해주세요."); }
else { else {
cap("/focommon/join", "mform", "cbsave"); cap("/focommon/join", "mform", "cbsave");
} }
} }
function idcheck() {
if (check("userid", null, "아이디를 입력해주세요.")) { }
else if (getBytes(val("userid")) < 5) { focus("userid"); msg("(5자이상, 영문/숫자/-/_) 규칙으로 아이디를 입력해주세요."); }
else if (!isid(val("userid"))) { focus("userid"); msg("(5자이상, 영문/숫자/-/_) 규칙으로 아이디를 입력해주세요."); }
else {
capp("/focommon/idchk", { id: val("userid") }, "cbidchk");
}
}
function cbidchk() {
if (capResult.code == 1000) {
setv("IsSaveOK", 1);
msg("사용가능한 아이디입니다.");
} else {
focus("userid");
msg("이미 사용중인 아이디입니다.<br />다른 아이디를 사용해주세요.");
}
}
function cbsave() { function cbsave() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
setv("intval", 1); setv("intval", 1);
@ -83,8 +189,21 @@ else
msg("이미 사용중인 아이디입니다.<br />다른 아이디를 사용해주세요."); msg("이미 사용중인 아이디입니다.<br />다른 아이디를 사용해주세요.");
} }
else if (capResult.obj == -2) { else if (capResult.obj == -2) {
focus("userid"); focus("email");
msg("이미 사용중인 이메일입니다.<br />다른 아이디를 사용해주세요."); msg("이미 사용중인 이메일입니다.<br />다른 이메일을 사용해주세요.");
}
else if (capResult.obj == -3) {
focus("mobile");
msg("이미 사용중인 핸드폰번호입니다.<br />다른 번호를 사용해주세요.");
}
}
function mobchk() {
//한번 인증되면 재인증 불가
if ($("#intval2").val() == 1 && $("#mobile").val() != null) {
msg("휴대폰 인증이 완료되었습니다.");
} else {
mobilechkview('MCHK');
} }
} }
</script> </script>

View File

@ -0,0 +1,42 @@
@model NP.Model.VMUser
<ul class="jnStep">
<li class="current"><div><div><span>1. 본인인증</span></div></div></li>
<li><div><div><span>2. 신청서 작성</span></div></div></li>
<li><div><div><span>3. 회원가입완료</span></div></div></li>
</ul>
<div class="jnSel">
<form id="mform" action="" method="post">
@Html.HiddenFor(w=>w.User.birthday)
@Html.HiddenFor(w=>w.User.username)
@Html.HiddenFor(w=>w.User.mobile)
@Html.HiddenFor(w=>w.User.vssn)
@Html.HiddenFor(w=>w.User.di)
@Html.HiddenFor(w=>w.User.ci)
@Html.HiddenFor(w=>w.intval2)
@Html.HiddenFor(w=>w.User.jointype)
</form>
<div>
<div class="jnsCont">
<img src="../img/common/join_select01.png" alt="i-PIN 인증">
<p>i-PIN 인증</p>
<a href="#" onclick="mobilechkview('IPIN');">인증하기</a>
</div>
</div>
<div>
<div class="jnsCont">
<img src="../img/common/join_select02.png" alt="휴대폰 본인인증">
<p>휴대폰 본인인증</p>
<a href="#" onclick="mobilechkview('MOBI');">인증하기</a>
</div>
</div>
@*<div>
<div class="jnsCont">
<img src="../img/common/join_select03.png" alt="카드인증">
<p>카드인증</p>
<a href="#">인증하기</a>
</div>
</div>*@
</div>
@Html.Partial("./Partial/OkCert3", null, new ViewDataDictionary { })
<p class="subDsc mt20">본인 인증 시 제공되는 정보는 해당 인증기관에서 직접 수집하며, 인증 이외의 용도로 이용 또는 저장하지 않습니다.</p>

View File

@ -0,0 +1,11 @@

<form id="mform" method="post">
<div class="jnSns">
<a href="#" onclick="javascript: $('#mform').attr('action', '/Account/JoinIdVeri').submit();">영남건설 기술 교육원 홈페이지 회원가입</a>
<ul class="lgnSns">
<li><a href="#">네이버 아이디로 로그인</a></li>
<li><a href="#">카카오톡 아이디로 로그인</a></li>
<li><a href="#">구글 아이디로 로그인</a></li>
</ul>
</div>
</form>

View File

@ -3,7 +3,7 @@
var _method = ViewData["bindmethod"].ToString(); var _method = ViewData["bindmethod"].ToString();
var _isjoin = "1".Equals((ViewData["isjoin"] ?? "0").ToString()); var _isjoin = "1".Equals((ViewData["isjoin"] ?? "0").ToString());
} }
<div class="clsPop clsPopFull" id="boxassign"> <div class="clsPop" id="boxassign">
<div> <div>
<div> <div>
<div class="clsPopWrap"> <div class="clsPopWrap">

View File

@ -26,7 +26,7 @@ else
else else
{ {
<li><a href="/Account/Index">로그인</a></li> <li><a href="/Account/Index">로그인</a></li>
<li><a href="/Account/Join">회원가입</a></li> <li><a href="/Account/JoinTSel">회원가입</a></li>
} }
</ul><!-- gpLgn --> </ul><!-- gpLgn -->
<div class="gpDrop"> <div class="gpDrop">
@ -54,7 +54,7 @@ else
<div class="gmLgn"> <div class="gmLgn">
<ul> <ul>
<li><a href="/Account/Index"><span>로그인</span></a></li> <li><a href="/Account/Index"><span>로그인</span></a></li>
<li><a href="/Account/Join"><span>회원가입</span></a></li> <li><a href="/Account/JoinTSel"><span>회원가입</span></a></li>
</ul> </ul>
</div> </div>
} }

View File

@ -0,0 +1,24 @@

<div style="display:none;">
<form name="kcbResultForm" method="post" action="">
<input type="hidden" name="CP_CD" value="" />
<input type="hidden" name="TX_SEQ_NO" value="" />
<input type="hidden" name="RSLT_CD" value="" />
<input type="hidden" name="RSLT_MSG" value="" />
<input type="hidden" name="RSLT_NAME" value="" />
<input type="hidden" name="RSLT_BIRTHDAY" value="" />
<input type="hidden" name="DI" value="" />
<input type="hidden" name="TEL_NO" value="" />
<input type="hidden" name="VSSN" value="" />
<input type="hidden" name="RETURN_MSG" value="" />
</form>
</div>
<script>
var pop;
$(document).ready(function () {
});
function mobilechkview(sel) {
var popupWindow = window.open("/Account/CertOk3Req?sel=" + sel, "auth_popup", "width=450,height=640,scrollbar=yes,resizable=no");
popupWindow.focus();
}
</script>

View File

@ -574,9 +574,8 @@ a.msBtn {
#breadcrumb dl > dd > ul > li.current > a {color:#238dfa; font-weight:500;} #breadcrumb dl > dd > ul > li.current > a {color:#238dfa; font-weight:500;}
#subPage {padding-bottom:260px;} #subPage {padding-bottom:260px;}
#pageTitle {margin:60px 0;} #pageTitle {margin:60px 0;}
#pageTitle.lgn {padding-top:120px; background: url("/img/common/gnb_logo.png")no-repeat center top;} #pageTitle.lgn {padding-top:120px; background: url("../../img/common/gnb_logo.png")no-repeat center top;}
#pageTitle > h3 {text-align:center; font-size:30pt; color:#333; letter-spacing:-0.025em; font-weight:500; line-height:1.0em; letter-spacing:-0.075em; position:relative; padding-top:30px;} #pageTitle > h3 {text-align:center; font-size:30pt; color:#333; letter-spacing:-0.025em; font-weight:700; line-height:1.0em; letter-spacing:-0.075em; position:relative;}
#pageTitle > h3:before {content:""; display:block; width:40px; height:3px; background:#238dfa; position:absolute; top:0; left:50%; margin-left:-20px;}
#pageTitle > p {text-align:center; font-size:12pt; color:#6b6b6b; letter-spacing:0em; font-weight:300; margin-top:40px; line-height:1.8em;} #pageTitle > p {text-align:center; font-size:12pt; color:#6b6b6b; letter-spacing:0em; font-weight:300; margin-top:40px; line-height:1.8em;}
@ -696,7 +695,7 @@ a.msBtn {
.brdSch {padding:10px 20px; background:#f3f3f3;} .brdSch {padding:10px 20px; background:#f3f3f3;}
.brdSch div {position:relative; padding-right:50px;} .brdSch div {position:relative; padding-right:50px;}
.brdSch input[type="text"] {display:block; width:100%; height:50px; border:none; padding:0 15px; font-size:14pt; font-weight:300;} .brdSch input[type="text"] {display:block; width:100%; height:50px; border:none; padding:0 15px; font-size:14pt; font-weight:300;}
.brdSch input[type="submit"] {display:block; width:50px; height:50px; position:absolute; right:0; top:0; border:none; text-indent:-9999px; background:#3a3a3a url("/img/online/search_ico.png")no-repeat center center; background-size:50px auto;} .brdSch input[type="submit"] {display:block; width:50px; height:50px; position:absolute; right:0; top:0; border:none; text-indent:-9999px; background:#3a3a3a url("../../img/online/search_ico.png")no-repeat center center; background-size:50px auto;}
.brdSch.slct div {padding-left:250px;} .brdSch.slct div {padding-left:250px;}
.brdSch.slct select {display:block; position:absolute; left:0; top:0; width:240px; height:50px; border:none;} .brdSch.slct select {display:block; position:absolute; left:0; top:0; width:240px; height:50px; border:none;}
.fairList {padding-top:50px;} .fairList {padding-top:50px;}
@ -709,7 +708,7 @@ a.msBtn {
.fairList.off .fairLec td {padding:30px 20px;} .fairList.off .fairLec td {padding:30px 20px;}
.fairLec td h5 {font-size:14pt; font-weight:400; line-height:20px;} .fairLec td h5 {font-size:14pt; font-weight:400; line-height:20px;}
.fairLec td h5 span {display:inline-block; vertical-align:middle; width:40px; height:20px; line-height:20px; text-align:center; font-size:10pt; color:#fff; background:#ff6600; margin-right:5px;} .fairLec td h5 span {display:inline-block; vertical-align:middle; width:40px; height:20px; line-height:20px; text-align:center; font-size:10pt; color:#fff; background:#ff6600; margin-right:5px;}
.fairLec td h5 span.grn {background:#77b743;} .fairLec td h5 span.grn {color: #259e41;}
.fairLec td dl {margin-top:20px;} .fairLec td dl {margin-top:20px;}
.fairLec td dl:after {content:""; display:table; clear:both;} .fairLec td dl:after {content:""; display:table; clear:both;}
.fairLec td dt {float:left; width:100%; font-size:12pt; margin-bottom:5px;} .fairLec td dt {float:left; width:100%; font-size:12pt; margin-bottom:5px;}
@ -739,7 +738,6 @@ a.msBtn {
.fairInfo h5 {background:#f1f8ff; font-size:16pt; font-weight:400; line-height:20px; padding:30px 20px;} .fairInfo h5 {background:#f1f8ff; font-size:16pt; font-weight:400; line-height:20px; padding:30px 20px;}
.fairInfo h5:after {content:""; display:table; clear:both;} .fairInfo h5:after {content:""; display:table; clear:both;}
.fairInfo h5 span {display:block; float:left; width:40px; height:20px; line-height:20px; text-align:center; font-size:10pt; color:#fff; background:#ff6600; margin-right:10px;} .fairInfo h5 span {display:block; float:left; width:40px; height:20px; line-height:20px; text-align:center; font-size:10pt; color:#fff; background:#ff6600; margin-right:10px;}
.fairInfo h5 span.grn {background:#77b743;}
.fairInfo table {} .fairInfo table {}
.fairInfo table th {padding:20px; width:270px; vertical-align:top;} .fairInfo table th {padding:20px; width:270px; vertical-align:top;}
.fairInfo table th img {display:block; max-width:100%;} .fairInfo table th img {display:block; max-width:100%;}
@ -761,7 +759,7 @@ a.msBtn {
.fairRadio div input[type="radio"] {display:inline; vertical-align:middle; margin-right:5px;} .fairRadio div input[type="radio"] {display:inline; vertical-align:middle; margin-right:5px;}
.fairRadio label {font-size:12pt; display:inline; vertical-align:middle;} .fairRadio label {font-size:12pt; display:inline; vertical-align:middle;}
.fairCover {} .fairCover {}
.fairCover h4 {padding-left:25px; font-size:16pt; color:#31317f; font-weight:400; margin-bottom:5px; margin-top:60px; background:url("/img/online/title_ico.png")no-repeat left center; background-size:16px auto;} .fairCover h4 {padding-left:25px; font-size:16pt; color:#0047a7; font-weight:400; margin-bottom:5px; margin-top:60px; background:url("../../img/online/title_ico.png")no-repeat left center; background-size:16px auto;}
.fairCover > div {border:solid 1px #d6d6d6;} .fairCover > div {border:solid 1px #d6d6d6;}
.fairCover th {width:160px; padding:20px;} .fairCover th {width:160px; padding:20px;}
.fairCover th em {display:block; padding-bottom:125%; border:solid 1px #e8e8e8; background-size:cover !important;} .fairCover th em {display:block; padding-bottom:125%; border:solid 1px #e8e8e8; background-size:cover !important;}
@ -789,9 +787,9 @@ a.msBtn {
.fairTab.col2 li {width:50%;} .fairTab.col2 li {width:50%;}
.fairTab li:last-child {border-right:solid 1px #dfdfdf;} .fairTab li:last-child {border-right:solid 1px #dfdfdf;}
.fairTab li a {display:block; height:48px; line-height:48px; text-align:center; font-size:12pt; color:#898989;} .fairTab li a {display:block; height:48px; line-height:48px; text-align:center; font-size:12pt; color:#898989;}
.fairTab li.current {background:#fff; border-color:#31317f; border-bottom-color:#fff; position:relative;} .fairTab li.current {background:#fff; border-color:#0047a7; border-bottom-color:#fff; position:relative;}
.fairTab li.current:after {content:""; display:block; width:1px; background:#31317f; position:absolute; right:-1px; top:-1px; bottom:-1px;} .fairTab li.current:after {content:""; display:block; width:1px; background:#0047a7; position:absolute; right:-1px; top:-1px; bottom:-1px;}
.fairTab li.current a {color:#31317f;} .fairTab li.current a {color:#0047a7;}
.fairIntro {padding:30px 20px;} .fairIntro {padding:30px 20px;}
.fairIntro dt {position:relative; padding-left:22px; font-size:13pt;} .fairIntro dt {position:relative; padding-left:22px; font-size:13pt;}
.fairIntro dt:before {content:""; display:block; width:16px; height:16px; border:solid 4px #000; box-sizing:border-box; position:absolute; left:0; top:50%; margin-top:-8px; border-radius: 100% 100% 100% 100%; -moz-border-radius: 100% 100% 100% 100%; -webkit-border-radius: 100% 100% 100% 100%;} .fairIntro dt:before {content:""; display:block; width:16px; height:16px; border:solid 4px #000; box-sizing:border-box; position:absolute; left:0; top:50%; margin-top:-8px; border-radius: 100% 100% 100% 100%; -moz-border-radius: 100% 100% 100% 100%; -webkit-border-radius: 100% 100% 100% 100%;}
@ -815,22 +813,19 @@ a.msBtn {
.fairMock th {background:#f9f9f9; width:90px; font-weight:400;} .fairMock th {background:#f9f9f9; width:90px; font-weight:400;}
.fairMock td p {line-height:20px;} .fairMock td p {line-height:20px;}
.fairMock td p:after {content:""; display:table; clear:both;} .fairMock td p:after {content:""; display:table; clear:both;}
.fairMock td p span {display:block; float:left; height:20px; line-height:20px; background:#333583; color:#fff; text-align:center; font-size:10pt; margin-right:10px; padding:0 10px;} .fairMock td p span {display:block; float:left; height:20px; line-height:20px; background:#0047a7; color:#fff; text-align:center; font-size:10pt; margin-right:10px; padding:0 10px;}
.fairRcmd {padding:30px 20px;} .fairRcmd {padding:30px 20px;}
.fairRcmd > h5 {position:relative; padding-left:22px; font-size:13pt;} .fairRcmd > h5 {position:relative; padding-left:22px; font-size:13pt;}
.fairRcmd > h5:before {content:""; display:block; width:16px; height:16px; border:solid 4px #000; box-sizing:border-box; position:absolute; left:0; top:50%; margin-top:-8px; border-radius: 100% 100% 100% 100%; -moz-border-radius: 100% 100% 100% 100%; -webkit-border-radius: 100% 100% 100% 100%;} .fairRcmd > h5:before {content:""; display:block; width:16px; height:16px; border:solid 4px #000; box-sizing:border-box; position:absolute; left:0; top:50%; margin-top:-8px; border-radius: 100% 100% 100% 100%; -moz-border-radius: 100% 100% 100% 100%; -webkit-border-radius: 100% 100% 100% 100%;}
.fairRcmd .fairList {padding-top:15px;} .fairRcmd .fairList {padding-top:15px;}
.clsTitle {padding-left:25px; font-size:16pt; color:#31317f; font-weight:400; margin-bottom:5px; margin-top:60px; background:url("/img/online/title_ico.png")no-repeat left center; background-size:16px auto; position:relative;} .clsTitle {padding-left:25px; font-size:16pt; color:#000; font-weight:700; margin-bottom:15px; margin-top:60px; background:url("../../img/online/title_ico.png")no-repeat left center; background-size:20px auto; position:relative;}
.clsTitle span {font-weight: 300;}
.clsList {border-top:solid 1px #d6d6d6;} .clsList {border-top:solid 1px #d6d6d6;}
.clsList li {padding:30px 20px; border:solid 1px #d6d6d6; border-top:none;} .clsList li {padding:30px 20px; border:solid 1px #d6d6d6; border-top:none;}
.clsList li h5 {line-height:20px; font-size:13pt;} .clsList li h5 {line-height:20px; font-size:13pt;}
.clsList li h5:after {content:""; display:table; clear:both;} .clsList li h5:after {content:""; display:table; clear:both;}
.clsList li h5 span {display:block; float:left; height:20px; line-height:20px; background:#383838; color:#fff; text-align:center; font-size:9pt; margin-right:5px; padding:0 5px;} .clsList li h5 span {display:block; float:left; height:20px; line-height:20px; background:#383838; color:#fff; text-align:center; font-size:9pt; margin-right:5px; padding:0 5px;}
.clsList li h5 span.ppl {background:#a404b2} .clsList li h5 span.ppl {background:#a404b2}
.clsList li h5 span.blu {background:#238dfa;}
.clsList li h5 span.nav {background:#333583;}
.clsList li h5 span.grn {background:#77b743;}
.clsList li h5 span.org {background:#f36f21;}
.clsList li h5 em {font-style:normal; color:#238dfa; font-size:13pt;} .clsList li h5 em {font-style:normal; color:#238dfa; font-size:13pt;}
.clsList p {font-size:11pt; color:#888; margin-top:5px; font-weight:300;} .clsList p {font-size:11pt; color:#888; margin-top:5px; font-weight:300;}
.clsChk th, .clsChk th,
@ -876,7 +871,7 @@ a.msBtn {
.clsCpny span {vertical-align:middle;} .clsCpny span {vertical-align:middle;}
.clsCpny a {display:inline-block; vertical-align:middle; width:90px; height:40px; line-height:38px; text-align:center; border:solid 1px #000; margin-left:30px;} .clsCpny a {display:inline-block; vertical-align:middle; width:90px; height:40px; line-height:38px; text-align:center; border:solid 1px #000; margin-left:30px;}
.clsFile {position:relative; padding-right:170px;} .clsFile {position:relative; padding-right:170px;}
.clsFile a {display:block; width:150px; height:40px; line-height:40px; text-align:center; font-size:11pt; color:#fff; position:absolute; right:0; top:50%; margin-top:-20px; background:#31317f;} .clsFile a {display:block; width:150px; height:40px; line-height:40px; text-align:center; font-size:11pt; color:#fff; position:absolute; right:0; top:50%; margin-top:-20px; background:#0047a7;}
.clsPrivacy {padding:20px; font-size:11pt; font-weight:300; background:#fafafa; line-height:1.8em;} .clsPrivacy {padding:20px; font-size:11pt; font-weight:300; background:#fafafa; line-height:1.8em;}
.clsAgree {margin-top:10px;} .clsAgree {margin-top:10px;}
.clsAgree:after {content:""; display:table; clear:both;} .clsAgree:after {content:""; display:table; clear:both;}
@ -885,20 +880,20 @@ a.msBtn {
.clsBtn {text-align:center; margin-top:30px;} .clsBtn {text-align:center; margin-top:30px;}
.clsBtn li {display:inline-block; padding:0 5px;} .clsBtn li {display:inline-block; padding:0 5px;}
.clsBtn li a {display:block; width:220px; height:60px; font-size:13pt;} .clsBtn li a {display:block; width:220px; height:60px; font-size:13pt;}
.clsBtn li:nth-child(1) a {line-height:60px; background:#383838; color:#fff;} .clsBtn li:nth-child(1) a {line-height:60px; background:#0047a7; color:#fff;}
.clsBtn li:nth-child(2) a {border:solid 1px #31317f; color:#31317f; line-height:58px;} .clsBtn li:nth-child(2) a {border:solid 1px #0047a7; color:#0047a7; line-height:58px;}
.clsBtn li:nth-child(2) a span {font-size:13pt; line-height:58px;} .clsBtn li:nth-child(2) a span {font-size:13pt; line-height:58px;}
.clsBtn li:nth-child(3) a {line-height:60px; background:#31317f; color:#fff;} .clsBtn li:nth-child(3) a {line-height:60px; background:#0047a7; color:#fff;}
.clsBtn.society li:nth-child(2) a {line-height:60px; background:#31317f; color:#fff;} .clsBtn.society li:nth-child(2) a {}
.clsBtn.solo li a {width:140px; background:#31317f;} .clsBtn.solo li a {width:140px; background:#0047a7;}
.clsPop {position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.7); z-index:100;} .clsPop {position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.7); z-index:100;}
.clsPop > div {display:table; width:100%; height:100%;} .clsPop > div {display:table; width:100%; height:100%;}
.clsPop > div > div {display:table-cell; width:100%; vertical-align:middle;} .clsPop > div > div {display:table-cell; width:100%; vertical-align:middle;}
.clsPopWrap {width:100%; max-width:620px; max-height:100%; margin:0 auto; background:#fff; position:relative;} .clsPopWrap {width:100%; max-width:620px; max-height:100%; margin:0 auto; background:#fff; position:relative;}
.clsPopTitle {background:#31317f; position:relative; padding:0 20px;} .clsPopTitle {background:#0047a7; position:relative; padding:0 20px;}
.clsPopTitle h5 {height:70px; line-height:70px; color:#fff; font-size:16pt;} .clsPopTitle h5 {height:50px; line-height:50px; color:#fff; font-size:16pt;}
.clsPopTitle a {display:block; height:70px; width:70px; position:absolute; right:0; top:0; text-indent:-9999px; z-index:1; cursor:pointer; background:url("/img/common/gnb_close.png")no-repeat center center; background-size:24px auto;} .clsPopTitle a {display:block; height:50px; width:50px; position:absolute; right:0; top:0; text-indent:-9999px; z-index:1; cursor:pointer; background:url("../../img/common/gnb_close.png")no-repeat center center; background-size:24px auto;}
.clsPopCont {padding:30px; overflow-y:auto;} .clsPopCont {padding:30px; overflow-y:auto; background: #fff;}
.clsPop.clsPopFull > div {display:block; width:100%;} .clsPop.clsPopFull > div {display:block; width:100%;}
.clsPop.clsPopFull > div > div {display:block; height:100%; vertical-align:middle; overflow:hidden;} .clsPop.clsPopFull > div > div {display:block; height:100%; vertical-align:middle; overflow:hidden;}
@ -914,7 +909,7 @@ a.msBtn {
.clspSch.slct select {display:block; position:absolute; left:20px; top:20px; width:140px;} .clspSch.slct select {display:block; position:absolute; left:20px; top:20px; width:140px;}
.clspSch input[type="text"] {display:block; width:100%;} .clspSch input[type="text"] {display:block; width:100%;}
.clspSch input[type="submit"] { .clspSch input[type="submit"] {
display:block; position:absolute; right:20px; top:20px; width:70px; height:40px; background:#878787; color:#fff; font-size:11pt; display:block; position:absolute; right:20px; top:20px; width:70px; height:40px; background:#666; color:#fff; font-size:11pt;
border-radius: 0px 0px 0px 0px; -moz-border-radius: 0px 0px 0px 0px; -webkit-border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px; -moz-border-radius: 0px 0px 0px 0px; -webkit-border-radius: 0px 0px 0px 0px;
border:none; -webkit-appearance: none; -moz-appearance: none; appearance: none; border:none; -webkit-appearance: none; -moz-appearance: none; appearance: none;
} }
@ -923,7 +918,7 @@ a.msBtn {
.clspCpny th, .clspCpny th,
.clspCpny td {padding:10px 0; border-top:solid 1px #d6d6d6; border-bottom:solid 1px #d6d6d6;} .clspCpny td {padding:10px 0; border-top:solid 1px #d6d6d6; border-bottom:solid 1px #d6d6d6;}
.clspCpny th {text-align:left;} .clspCpny th {text-align:left;}
.clspCpny th p {position:relative; padding-left:8px; font-size:12pt;} .clspCpny th p {position:relative; padding-left:8px; font-size:12pt; font-weight: 400; color: #0047a7;}
.clspCpny th p:before {content:""; display:block; width:2px; height:2px; background:#000; position:absolute; left:0; top:50%; margin-top:-1px;} .clspCpny th p:before {content:""; display:block; width:2px; height:2px; background:#000; position:absolute; left:0; top:50%; margin-top:-1px;}
.clspCpny td {width:70px;} .clspCpny td {width:70px;}
.clspCpny td a {display:block; width:100%; height:30px; line-height:28px; text-align:center; border:solid 1px #000; font-size:11pt;} .clspCpny td a {display:block; width:100%; height:30px; line-height:28px; text-align:center; border:solid 1px #000; font-size:11pt;}
@ -938,10 +933,10 @@ a.msBtn {
.paging {text-align:center; padding-top:30px;} .paging {text-align:center; padding-top:30px;}
.paging a {display:inline-block; vertical-align:middle; width:40px; height:40px; line-height:38px; border:solid 1px #d6d6d6;} .paging a {display:inline-block; vertical-align:middle; width:40px; height:40px; line-height:38px; border:solid 1px #d6d6d6;}
.paging > a {text-indent:-9999px; background-size:auto 10px !important;} .paging > a {text-indent:-9999px; background-size:auto 10px !important;}
.paging a.first {background:url("/img/common/paging_first.png")no-repeat center center;} .paging a.first {background:url("../../img/common/paging_first.png")no-repeat center center;}
.paging a.prev {background:url("/img/common/paging_prev.png")no-repeat center center;} .paging a.prev {background:url("../../img/common/paging_prev.png")no-repeat center center;}
.paging a.next {background:url("/img/common/paging_next.png")no-repeat center center;} .paging a.next {background:url("../../img/common/paging_next.png")no-repeat center center;}
.paging a.last {background:url("/img/common/paging_last.png")no-repeat center center;} .paging a.last {background:url("../../img/common/paging_last.png")no-repeat center center;}
.paging ul {display:inline-block; vertical-align:middle; margin:0 10px;} .paging ul {display:inline-block; vertical-align:middle; margin:0 10px;}
.paging ul li {display:inline-block; vertical-align:middle;} .paging ul li {display:inline-block; vertical-align:middle;}
.paging ul li.on a {border:solid 1px #353535; background:#353535; color:#fff;} .paging ul li.on a {border:solid 1px #353535; background:#353535; color:#fff;}
@ -953,16 +948,16 @@ a.msBtn {
.trstList li input[type="radio"] {display:inline-block; vertical-align:middle;} .trstList li input[type="radio"] {display:inline-block; vertical-align:middle;}
.trstList li label {display:inline-block; vertical-align:middle; margin-left:5px; font-size:11pt;} .trstList li label {display:inline-block; vertical-align:middle; margin-left:5px; font-size:11pt;}
.trstBtn {padding-top:30px; text-align:center;} .trstBtn {padding-top:30px; text-align:center;}
.trstBtn a {display:inline-block; width:220px; height:60px; font-size:13pt; line-height:60px; background:#31317f; color:#fff;} .trstBtn a {display:inline-block; width:220px; height:60px; font-size:13pt; line-height:60px; background:#0047a7; color:#fff;}
.clsAdd {display:block; width:150px; height:40px; line-height:39px; text-align:center; background:#31317f; color:#fff; font-size:11pt; position:absolute; right:0; bottom:5px;} .clsAdd {display:block; width:150px; height:40px; line-height:39px; text-align:center; background:#0047a7; color:#fff; font-size:11pt; position:absolute; right:0; bottom:5px;}
.clsSociety {border-top:solid 1px #d6d6d6;} .clsSociety {border-top:solid 1px #d6d6d6;}
.clsSociety li {padding:25px 0; border-bottom:solid 1px #d6d6d6;} .clsSociety li {padding:25px 0; border-bottom:solid 1px #d6d6d6;}
.clsSociety li h5 {} .clsSociety li h5 {}
.clsSociety li h5:after {content:""; display:table; clear:both;} .clsSociety li h5:after {content:""; display:table; clear:both;}
.clsSociety li h5 span {float:left; display:block; height:30px; line-height:30px; margin-right:15px; white-space:nowrap; font-size:12pt; font-weight:500;} .clsSociety li h5 span {float:left; display:block; height:30px; line-height:30px; margin-right:15px; white-space:nowrap; font-size:12pt; font-weight:500;}
.clsSociety li h5 a {float:left; display:block; width:60px; height:30px; line-height:28px; border:solid 1px #31317f; text-align:center; color:#31317f;} .clsSociety li h5 a {float:left; display:block; width:60px; height:30px; line-height:28px; border:solid 1px #0047a7; text-align:center; color:#0047a7;}
.clsSociety dl {margin-top:15px;} .clsSociety dl {margin-top:15px;}
.clsSociety dl dd {margin-bottom:5px; position:relative; padding-left:8px; font-size:12pt;} .clsSociety dl dd {margin-bottom:5px; position:relative; padding-left:8px; font-size:12pt;}
.clsSociety dl dd:last-child {margin-bottom:0;} .clsSociety dl dd:last-child {margin-bottom:0;}
@ -992,9 +987,9 @@ a.msBtn {
.sctyChk li input[type="checkbox"] {display:inline-block; vertical-align:middle;} .sctyChk li input[type="checkbox"] {display:inline-block; vertical-align:middle;}
.sctyChk li label {display:inline-block; vertical-align:middle; font-size:12pt; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .sctyChk li label {display:inline-block; vertical-align:middle; font-size:12pt; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sctyBtn {padding:30px 0; text-align:center;} .sctyBtn {padding:30px 0; text-align:center;}
.sctyBtn a {display:inline-block; width:160px; height:60px; line-height:60px; background:#383838; color:#fff; font-size:13pt;} .sctyBtn a {display:inline-block; width:160px; height:60px; line-height:60px; background:#0047a7; color:#fff; font-size:13pt;}
.sctyNone {text-align:center; padding:60px 0; font-size:13pt;} .sctyNone {text-align:center; padding:60px 0; font-size:13pt;}
.sctyNone span {color:#31317f; font-size:13pt;} .sctyNone span {color:#0047a7; font-size:13pt;}
html.lock, html.lock,
body.lock {width:100%; height:100%; overflow:hidden;} body.lock {width:100%; height:100%; overflow:hidden;}
@ -1133,11 +1128,14 @@ body.lock {width:100%; height:100%; overflow:hidden;}
.clsBtn.society li:nth-child(2) a {line-height:50px; padding-top:0;} .clsBtn.society li:nth-child(2) a {line-height:50px; padding-top:0;}
.clsBtn.solo {text-align:center;} .clsBtn.solo {text-align:center;}
.clsBtn.solo li {display:inline-block; float:none; vertical-align:middle;} .clsBtn.solo li {display:inline-block; float:none; vertical-align:middle;}
.clsPop > div > div {padding-left:15px; padding-right:15px;} .clsPop {}
.clsPopTitle {padding:0 15px;} .clsPop > div {display: block;}
.clsPop > div > div {display: block; height: 100%; padding-left:15px; padding-right:15px; padding-top: 15px; padding-bottom: 15px;}
.clsPopWrap {height: 100%; position: relative; padding-top: 50px;}
.clsPopTitle {padding:0 15px; position: absolute; left: 0; right: 0; top: 0;}
.clsPopTitle h5 {height:50px; line-height:50px; font-size:14pt;} .clsPopTitle h5 {height:50px; line-height:50px; font-size:14pt;}
.clsPopTitle a {height:50px; width:50px; background-size:20px auto;} .clsPopTitle a {height:50px; width:50px; background-size:20px auto;}
.clsPopCont {padding:20px;} .clsPopCont {padding:20px; height: 100%; overflow-y: auto;}
.clspSch {padding:10px; padding-right:80px; position:relative;} .clspSch {padding:10px; padding-right:80px; position:relative;}
.clspSch input[type="submit"] {right:10px; top:10px; width:60px; font-size:11pt;} .clspSch input[type="submit"] {right:10px; top:10px; width:60px; font-size:11pt;}
.clspSch.slct {padding-left:130px;} .clspSch.slct {padding-left:130px;}
@ -1165,6 +1163,7 @@ body.lock {width:100%; height:100%; overflow:hidden;}
/* --------------------------------------- */ /* --------------------------------------- */
/* License */ /* License */
/* --------------------------------------- */ /* --------------------------------------- */
@ -1587,18 +1586,40 @@ body.lock {width:100%; height:100%; overflow:hidden;}
/* Membership */ /* Membership */
/* --------------------------------------- */ /* --------------------------------------- */
.joinForm {width:100%; max-width:500px; margin:0 auto;} .joinForm {width:100%; max-width:500px; margin:0 auto; padding-top: 60px;}
.joinForm ul li {margin-bottom:20px;} .joinForm > ul > li {margin-bottom:20px;}
.joinForm ul li input[type="text"], .joinForm > ul > li input[type="text"],
.joinForm ul li input[type="password"], .joinForm > ul > li input[type="password"],
.joinForm ul li input[type="tel"] {display:block; width:100%; height:40px; border:solid 1px #cbcbcb; padding:0 20px;} .joinForm > ul > li input[type="tel"] {display:block; width:100%; height:50px; border:solid 1px #cbcbcb; padding:0 20px;}
.joinForm > ul > li span.red {color: #f36f21; display: block; margin-top: 5px;}
.joinId {position:relative; padding-right:130px;}
.joinId a {display:block; width:120px; height:50px; line-height:47px; text-align:center; border:solid 1px #000; color:#000; font-size:11pt; position:absolute; right:0; top:0;}
.joinCpny {position:relative; padding-right:100px;} .joinCpny {position:relative; padding-right:100px;}
.joinCpny a {display:block; width:90px; height:40px; line-height:37px; text-align:center; border:solid 1px #31317f; color:#31317f; font-size:11pt; position:absolute; right:0; top:0;} .joinCpny a {display:block; width:90px; height:50px; line-height:50px; text-align:center; color:#fff; background: #666; font-size:11pt; position:absolute; right:0; top:0;}
.joinAgree {margin-bottom:50px; padding-left:23px; position:relative;} .joinAgree {margin-bottom:50px; padding-left:23px; position:relative;}
.joinAgree input[type="checkbox"] {width:20px; height:20px; position:absolute; left:0; top:2px;} .joinAgree input[type="checkbox"] {width:20px; height:20px; position:absolute; left:0; top:2px;}
.joinAgree label {display:block; font-size:11pt; color:#000;} .joinAgree label {display:block; font-size:11pt; color:#000;}
.joinAgree label a {color:#f36f21; font-size:11pt;} .joinAgree label a {color:#f36f21; font-size:11pt;}
.joinBtn {display:block; height:60px; line-height:60px; text-align:center; background:#31317f; color:#fff; font-size:14pt; font-weight:500;} .jnType {}
.jnType:after {content: ''; display: table; clear: both;}
.jnType li {float: left; margin-right: 30px;}
.jnType li:last-child {margin-right: 0;}
.jnType li input[type="radio"] {float: left;}
.jnType li label {display: block; float: left; height: 18px; line-height: 18px;}
.joinBtn {display:block; height:60px; line-height:60px; text-align:center; background:#0047a7; color:#fff !important; font-size:14pt; font-weight:500;}
.jnNum:after {content: ''; display: table; clear: both;}
.jnNum li {float: left; width: 47%;}
.jnNum li:nth-child(2) {width: 6%; text-align: center; height: 50px; line-height: 50px;}
.jnAddr {position: relative;}
.jnAddr:after {content: ''; display: table; clear: both;}
.jnAddr li {float: left;}
.jnAddr li:nth-child(1) {width: 70%;}
.jnAddr li:nth-child(2) {width: 30%; padding-left: 10px;}
.jnAddr li:nth-child(3) {width: 100%; padding-top: 10px;}
.jnAddr li:nth-child(2) a {display: block; height: 50px; line-height: 50px; text-align: center; background: #666; color: #fff;}
.popWrap {position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.8); padding:30px 15px; z-index:100; display:none;} .popWrap {position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.8); padding:30px 15px; z-index:100; display:none;}
.popWrap > div {width:100%; max-width:1200px; margin:0 auto; height:100%; position:relative; padding-top:80px;} .popWrap > div {width:100%; max-width:1200px; margin:0 auto; height:100%; position:relative; padding-top:80px;}
@ -1606,9 +1627,9 @@ body.lock {width:100%; height:100%; overflow:hidden;}
.popWrap.popSmall > div > div {display:table-cell; width:100%; vertical-align:middle;} .popWrap.popSmall > div > div {display:table-cell; width:100%; vertical-align:middle;}
.popWrap.popSmall > div > div > div {width:400px; margin:0 auto; position:relative; padding-top:80px; background:#fff;} .popWrap.popSmall > div > div > div {width:400px; margin:0 auto; position:relative; padding-top:80px; background:#fff;}
.popWrap.popMiddle > div > div > div {width:800px; margin:0 auto; position:relative; padding-top:80px; background:#fff;} .popWrap.popMiddle > div > div > div {width:800px; margin:0 auto; position:relative; padding-top:80px; background:#fff;}
.popTitle {background:#31317f; padding:0 30px; position:absolute; left:0; right:0; top:0;} .popTitle {background:#0047a7; padding:0 30px; position:absolute; left:0; right:0; top:0;}
.popTitle h5 {font-size:22pt; color:#fff; font-weight:400; height:80px; line-height:80px;} .popTitle h5 {font-size:22pt; color:#fff; font-weight:400; height:80px; line-height:80px;}
.popTitle span {display:block; width:80px; height:80px; position:absolute; right:0; top:0; text-indent:-9999px; cursor:pointer; background:url("/img/common/pop_close.png")no-repeat center center;} .popTitle span {display:block; width:80px; height:80px; position:absolute; right:0; top:0; text-indent:-9999px; cursor:pointer; background:url("../../img/common/pop_close.png")no-repeat center center;}
.popCont {background:#fff; overflow-y:auto; height:100%; padding:0 30px; padding-bottom:40px; -webkit-overflow-scrolling: touch;} .popCont {background:#fff; overflow-y:auto; height:100%; padding:0 30px; padding-bottom:40px; -webkit-overflow-scrolling: touch;}
.popCont h3 {font-size:15pt; padding-top:40px; font-weight:500;} .popCont h3 {font-size:15pt; padding-top:40px; font-weight:500;}
.popCont h4 {font-size:13pt; padding-top:30px; font-weight:500; padding-bottom:5px;} .popCont h4 {font-size:13pt; padding-top:30px; font-weight:500; padding-bottom:5px;}
@ -1616,51 +1637,77 @@ body.lock {width:100%; height:100%; overflow:hidden;}
.popCont p {font-size:11pt;} .popCont p {font-size:11pt;}
html.lock, body.lock {display:block; width:100%; height:100%; overflow:hidden;} html.lock, body.lock {display:block; width:100%; height:100%; overflow:hidden;}
.joinScss {text-align:center; padding-top:60px;} .joinScss {text-align:center; padding-top:120px;}
.joinScss h5 span {font-size:20pt; color:#31317f; font-weight:400;} .joinScss h5 {font-size: 20pt; font-weight: 500;}
.joinScss p {margin-top:10px;} .joinScss p {margin-top:10px; font-size: 13pt; margin-bottom: 60px;}
.joinScss p span {font-size:13pt; font-weight:300;} .joinScss p span {font-size:13pt; font-weight:300;}
.joinScss a {display:block; width:500px; max-width:100%; margin:0 auto; margin-top:130px; height:60px; line-height:60px; text-align:center; background:#31317f; color:#fff; font-size:14pt; font-weight:500;} .joinScss a {display:block; width:500px; max-width:100%; margin:0 auto; margin-bottom: 20px; height:60px; line-height:56px; text-align:center; border: solid 2px #0047a7; color:#0047a7; font-size:14pt; font-weight:500;}
.joinScss a.blu {background:#0047a7; color: #fff;}
.lgnWrap {width:100%; max-width:500px; margin:0 auto;} .lgnWrap {width:100%; max-width:500px; margin:0 auto;}
.lgnForm {} .lgnForm {}
.lgnForm li {margin-bottom:20px;} .lgnForm li {margin-bottom:20px;}
.lgnForm li:last-child {margin-bottom:0;} .lgnForm li:last-child {margin-bottom:0;}
.lgnForm li input {height:40px; border:solid 1px #cbcbcb; display:block; width:100%;} .lgnForm li input {height:60px; border:solid 1px #cbcbcb; display:block; width:100%;}
.lgnChk {margin-bottom:50px; margin-top:10px;} .lgnChk {margin-bottom:50px; margin-top:10px;}
.lgnChk input[type="checkbox"] {display:inline-block; vertical-align:middle;} .lgnChk input[type="checkbox"] {display:inline-block; vertical-align:middle;}
.lgnChk label {display:inline-block; vertical-align:middle;} .lgnChk label {display:inline-block; vertical-align:middle;}
.lgnBtn {display:block; text-align:center; height:60px; line-height:60px; background:#31317f; color:#fff; font-size:14pt;} .lgnBtn {display:block; text-align:center; height:60px; line-height:60px; background:#0047a7; color:#fff !important; font-size:14pt;}
.lgnMenu {margin-top:50px;} .lgnMenu {margin-top:50px;}
.lgnMenu dl:first-child {margin-bottom:10px;} .lgnMenu dl:first-child {margin-bottom:10px;}
.lgnMenu dl:after {content:""; display:table; clear:both;} .lgnMenu dl:after {content:""; display:table; clear:both;}
.lgnMenu dt {float:left; white-space:nowrap; height:50px; line-height:50px; font-size:12pt; font-weight:300;} .lgnMenu dt {float:left; white-space:nowrap; height:50px; line-height:50px; font-size:12pt; font-weight:300;}
.lgnMenu dd {float:right;} .lgnMenu dd {float:right;}
.lgnMenu dd a {display:block; height:50px; line-height:48px; text-align:center; width:190px; border:solid 1px #ccc; color:#515151; font-size:12pt;} .lgnMenu dd a {display:block; height:50px; line-height:48px; text-align:center; width:190px; border:solid 1px #ccc; color:#515151; font-size:12pt;}
.lgnMenu dl:first-child dd a {color:#31317f; border-color:#31317f;} .lgnMenu dl:first-child dd a {color:#0047a7; border-color:#0047a7;}
.idpw {padding-top:30px;} .idpw {padding-top:30px; text-align: center;}
.idpw p {font-size:12pt; color:#000; padding-bottom:15px;} .idpw p {font-size:12pt; color:#000; padding-bottom:15px;}
.idpw p span {font-size:12pt; color:#f36f21;} .idpw p span {font-size:14pt; color:#0047a7;}
.idpwBtn {margin-top:60px; padding:0 25px;} .idpwBtn {margin-top:60px; padding:0 25px;}
.idpwBtn:after {content:""; display:table; clear:both;} .idpwBtn:after {content:""; display:table; clear:both;}
.idpwBtn li {float:left; width:50%; padding:0 5px;} .idpwBtn li {float:left; width:50%; padding:0 5px;}
.idpwBtn li a {display:block; height:60px; line-height:58px; font-size:13pt; color:#31317f; border:solid 1px #31317f; text-align:center;} .idpwBtn li a {display:block; height:60px; line-height:58px; font-size:13pt; color:#0047a7; border:solid 1px #0047a7; text-align:center;}
.idpwBtn li:first-child a {background:#31317f; color:#fff;} .idpwBtn li:first-child a {background:#0047a7; color:#fff;}
.lgnFind {text-align: center; margin-top: 30px;}
.lgnFind li {display: inline; padding: 0 15px; position: relative;}
.lgnFind li:after {content: ''; display: block; width: 1px; height: 14px; background: #e0e0e0; position: absolute; right: 0; top: 50%; margin-top: -7px;}
.lgnFind li:last-child:after {display: none;}
.lgnFind li a {font-size: 12pt;}
.lgnSns {border: solid 1px #d6d6d6; margin-top: 90px;}
.lgnSns li {border-bottom: solid 1px #d6d6d6;}
.lgnSns li:last-child {border-bottom: none;}
.lgnSns li a {display: block; height: 80px; line-height: 80px; padding: 0 20px; font-size: 13pt;}
.lgnSns li a:before {content: ''; display: inline-block; width: 38px; height: 38px; vertical-align: middle; margin-right: 20px;}
.lgnSns li:nth-child(1) a:before {background: url('../../img/common/login_sns01.png')no-repeat center center;}
.lgnSns li:nth-child(2) a:before {background: url('../../img/common/login_sns02.png')no-repeat center center;}
.lgnSns li:nth-child(3) a:before {background: url('../../img/common/login_sns03.png')no-repeat center center;}
.fndScs {text-align: center;}
.fndScs p {}
.fndScs h6 {color: #0047a7; background: #eee; padding: 20px 0; margin-top: 10px; font-size: 13pt; font-weight: 400;}
.jnSns {}
.jnSns h5 {text-align: center; font-size: 14pt;}
.jnSns > a {display: block; width: 500px; margin: 0 auto; text-align: center; margin-bottom: -80px; border: solid 1px #d6d6d6; border-bottom: none; line-height: 80px; font-size: 13pt; color: #0047a7;}
.jnSns ul {width: 100%; max-width: 500px; margin: 0 auto; margin-top: 80px;}
.jnSns > em {display: block; margin: 0 auto; width: 140px; height: 140px; background: #fafafa; background-size: cover !important; font-style: normal; margin-bottom: 20px; border-radius:100px 100px 100px 100px; -moz-border-radius:100px 100px 100px 100px; -webkit-border-radius:100px 100px 100px 100px;}
.jnSns > em > span {display: table; width: 100%; height: 100%;}
.jnSns > em > span > span {display: table-cell; width: 100%; vertical-align: middle; text-align: center; font-size: 16pt; color: 000px; font-weight: 500;}
@media (max-width:800px) { @media (max-width:800px) {
.joinForm ul li {margin-bottom:10px;} .joinForm {padding-top: 30px;}
.joinForm ul li input[type="text"], .joinForm > ul > li {margin-bottom:10px;}
.joinForm ul li input[type="password"], .joinForm > ul > li input[type="text"],
.joinForm ul li input[type="tel"] {height:36px; padding:0 10px;} .joinForm > ul > li input[type="password"],
.joinForm > ul > li input[type="tel"] {height:36px; padding:0 10px;}
.joinId {padding-right:100px;}
.joinId a {width:90px; height:36px; line-height:34px; font-size:10pt;}
.joinCpny {padding-right:80px;} .joinCpny {padding-right:80px;}
.joinCpny a {width:70px; height:36px; line-height:33px;} .joinCpny a {width:70px; height:36px; line-height:33px;}
.joinAgree {margin-bottom:20px;} .joinAgree {margin-bottom:20px;}
.joinBtn {height:50px; line-height:50px; font-size:12pt;} .joinBtn {height:50px; line-height:50px; font-size:12pt;}
.jnType li {margin-right: 15px;}
.popWrap > div {padding-top:50px;} .popWrap > div {padding-top:50px;}
.popWrap.popSmall > div > div {} .popWrap.popSmall > div > div {}
.popWrap.popSmall > div > div > div {width:100%; padding-top:50px;} .popWrap.popSmall > div > div > div {width:100%; padding-top:50px;}
@ -1677,9 +1724,10 @@ html.lock, body.lock {display:block; width:100%; height:100%; overflow:hidden;}
.joinScss h5 span {font-size:16pt; display:block; line-height:1.3em;} .joinScss h5 span {font-size:16pt; display:block; line-height:1.3em;}
.joinScss p {margin-top:10px;} .joinScss p {margin-top:10px;}
.joinScss p span {font-size:11pt; display:block;} .joinScss p span {font-size:11pt; display:block;}
.joinScss a {margin-top:60px; height:50px; line-height:50px; font-size:12pt;} .joinScss a {margin-bottom: 10px; height:50px; line-height:46px; font-size:12pt;}
.lgnForm li {margin-bottom:10px;} .lgnForm li {margin-bottom:10px;}
.lgnForm li input {height:40px;}
.lgnChk {margin-bottom:40px;} .lgnChk {margin-bottom:40px;}
.lgnBtn {height:50px; line-height:50px; font-size:12pt;} .lgnBtn {height:50px; line-height:50px; font-size:12pt;}
.lgnMenu {margin-top:30px;} .lgnMenu {margin-top:30px;}
@ -1690,10 +1738,22 @@ html.lock, body.lock {display:block; width:100%; height:100%; overflow:hidden;}
.idpw {padding-top:0;} .idpw {padding-top:0;}
.idpw p {font-size:10pt;;} .idpw p {font-size:10pt;;}
.idpwBtn {margin:0 -5px; margin-top:30px; padding:0;} .idpwBtn {margin:0 -5px; margin-top:20px; padding:0;}
.idpwBtn li a {height:50px; line-height:48px; font-size:11pt;} .idpwBtn li a {height:50px; line-height:48px; font-size:11pt;}
}
.lgnFind {margin-top: 20px;}
.lgnFind li {padding: 0 10px;}
.lgnFind li:after {height: 10px; margin-top: -5px;}
.lgnFind li a {font-size: 11pt;}
.lgnSns {margin-top: 30px;}
.lgnSns li a {height: 60px; line-height: 60px; font-size: 11pt;}
.lgnSns li a:before {margin-right: 10px;}
.jnSns {}
.jnSns > a {margin-bottom: -30px; width: 100%; line-height: 60px; font-size: 11pt;}
.jnSns h5 {text-align: center; font-size: 12pt;}
.jnSns ul {margin-top: 30px;}
}
@ -2011,6 +2071,54 @@ html.lock, body.lock {display:block; width:100%; height:100%; overflow:hidden;}
/* ȸ¿ø°¡ÀÔ */
.jnStep {margin: 0 -8px;}
.jnStep:after {content: ''; display: table; clear: both;}
.jnStep li {float: left; width: 33.3333%; padding: 0 8px;}
.jnStep li > div {
height: 60px; padding: 2px;
border-radius: 30px; -moz-border-radius: 30px; -webkit-border-radius: 30px;
background: #0047a7;
background: -moz-linear-gradient(45deg, #0047a7 21%, #e8b800 54%);
background: -webkit-linear-gradient(45deg, #0047a7 21%,#e8b800 54%);
background: linear-gradient(45deg, #0047a7 21%,#e8b800 54%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0047a7', endColorstr='#e8b800',GradientType=1 );
}
.jnStep li > div > div {background: #fff; border-radius: 30px; -moz-border-radius: 30px; -webkit-border-radius: 30px;}
.jnStep li span {display: block; height: 56px; line-height: 56px; text-align: center; color: #0047a7; font-size: 13pt;}
.jnStep li.current > div {background: #0047a7;}
.jnStep li.current > div > div {background: #0047a7;}
.jnStep li.current span {color: #fff;}
.jnStep li span:before {content: ''; display: inline-block; width: 28px; height: 33px; background-size: cover !important; vertical-align: middle; margin-right: 10px; margin-top: -5px;}
.jnStep li:nth-child(1) span:before {background: url('../../img/common/join_step01.png')no-repeat center center;}
.jnStep li:nth-child(2) span:before {background: url('../../img/common/join_step02.png')no-repeat center center;}
.jnStep li:nth-child(3) span:before {background: url('../../img/common/join_step03.png')no-repeat center center;}
.jnStep li:nth-child(1).current span:before {background: url('../../img/common/join_step01_on.png')no-repeat center center;}
.jnStep li:nth-child(2).current span:before {background: url('../../img/common/join_step02_on.png')no-repeat center center;}
.jnStep li:nth-child(3).current span:before {background: url('../../img/common/join_step03_on.png')no-repeat center center;}
.jnSel {margin: 0 -30px; padding-top: 50px; text-align:center;}
.jnSel:after {content: ''; display: table; clear: both;}
.jnSel > div {/*float: left;*/ width: 33.3333%; padding: 0 30px; display:inline-block;}
.jnsCont {background: #f8f8f8; border: solid 1px #e1e1e1; text-align: center; padding: 50px 0;}
.jnsCont img {}
.jnsCont p {font-size: 14pt; font-weight: 500; margin: 20px 0;}
.jnsCont a {display: inline-block; width: 120px; height: 40px; line-height: 40px; color: #fff; background: #484848; font-size: 12pt;}
.rstNon {text-align: center; padding: 30px 0;}
.rstNon h6 {color: #0047a7; font-size: 13pt; font-weight: 400;}
.rstNon p {color: #666; margin-top: 5px;}
@media (max-width:900px) {
.jnStep {margin: 0 -3px;}
.jnStep li {padding: 0 3px;}
.jnStep li > div {height: 40px; padding: 2px;}
.jnStep li span {height: 36px; line-height: 36px; font-size: 10pt;}
.jnStep li span:before {display: none;}
.jnSel {margin: 0; padding-top: 30px;}
.jnSel > div {float: none; width: 100%; padding: 0; margin-bottom: 15px;}
.jnSel > div:last-child {margin-bottom: 0;}
.jnsCont {padding: 30px 0;}
.jnsCont p {font-size: 12pt; margin: 15px 0;}
}

View File

@ -994,6 +994,15 @@ function submit(fid, t, remainpage) {
function msgadmin(t) { function msgadmin(t) {
setTimeout('msg("운영자에게 문의해주세요.")', t || 10); setTimeout('msg("운영자에게 문의해주세요.")', t || 10);
} }
function isid(v) {
//영문숫자-_ , 나머지입력시 오류반환
var regExp = /[a-zA-Z0-9\-_]/i;
var regExp2 = /[\,.=~!@#$%^&*()\[\]+|<>?:{}]/;
if (regExp.test(v) && !regExp2.test(v)) {
return true;
}
return false;
}
function isemail(v) { function isemail(v) {
//이메일 검사 //이메일 검사
var regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; var regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;

View File

@ -14,6 +14,14 @@ namespace NP.Model
/// 회원유형 1: 교육생,11: 강사,81: 고객사관리자,91: 통합관리자, 92: 일반관리자 /// 회원유형 1: 교육생,11: 강사,81: 고객사관리자,91: 통합관리자, 92: 일반관리자
/// </summary> /// </summary>
public int usertype { get; set; } public int usertype { get; set; }
/// <summary>
/// 가입유형 0:일반회원가입,1:google,2:naver,3:kakao
/// </summary>
public int jointype { get; set; }
/// <summary>
/// sns아이디
/// </summary>
public String snsid { get; set; }
public String usertypestr { get; set; } public String usertypestr { get; set; }
public String usertypename public String usertypename
{ {
@ -49,6 +57,10 @@ namespace NP.Model
/// 50 영문이름 /// 50 영문이름
/// </summary> /// </summary>
public String usernameeng { get; set; } public String usernameeng { get; set; }
/// <summary>
/// 주민번호
/// </summary>
public String rrnum { get; set; }
public int? gender { get; set; } public int? gender { get; set; }
public String gender2 { get; set; } public String gender2 { get; set; }
/// <summary> /// <summary>
@ -228,6 +240,9 @@ namespace NP.Model
} }
} }
public String subdomain { get; set; } public String subdomain { get; set; }
public String di { get; set; }
public String ci { get; set; }
public String vssn { get; set; }
} }
/// <summary> /// <summary>