예제 #1
0
        private bool Login(Session s)
        {
            s.Send("인증 확인중입니다...\r\n");
            using (var con = DBContext.Open())
            {
                string accountId = cmd[AuthPromptState.Ready];
                string password  = cmd[AuthPromptState.Password];

                t_account acc = con.Single <t_account>(w => w.accountId == accountId && w.password == password);
                //SELECT * FROM t_account WHERE accountId = accountId and password = password limit 1

                if (acc == null)
                {
                    s.Send("계정이나 비밀번호가 틀립니다.\r\n계정을 다시 입력하세요 : ");
                    state = AuthPromptState.Ready;
                    cmd.Clear();
                    return(false);
                }

                s.Send("인증 완료 되었습니다.\r\n");
                owner.Broadcast($"{accountId}님이 접속하셨습니다.\r\n");

                s.authInfo.accountId = accountId;
                return(true);
            }
        }
예제 #2
0
        private void CreateAccount(Session s)
        {
            s.Send("계정 생성중입니다...\r\n");
            string accountId = cmd[AuthPromptState.CreateAccount];
            string password  = cmd[AuthPromptState.MakePassword];
            string password2 = cmd[AuthPromptState.MakePassword2];

            if (password != password2)
            {
                s.Send("비밀번호가 서로 틀립니다.\r\n다시 입력하세요. :");
                state = AuthPromptState.MakePassword;
                cmd.Remove(AuthPromptState.MakePassword);
                cmd.Remove(AuthPromptState.MakePassword2);
                return;
            }

            t_account acc = new t_account();

            acc.accountId = accountId;
            acc.password  = password;
            acc.creation  = DateTime.Now;

            using (var con = DBContext.Open())
            {
                if (con.Exists <t_account>(w => w.accountId == accountId))
                {
                    s.Send($"{accountId} 계정이 이미 있습니다. 계정을 다시 입력하세요: ");
                    state = AuthPromptState.CreateAccount;
                    cmd.Clear();
                    return;
                }

                con.Insert(acc);
            }

            s.Send($"{accountId} 계정이 생성되었습니다. 접속하실 계정을 입력하세요: ");
            state = AuthPromptState.Ready;
            cmd.Clear();
        }