Example #1
0
        private void Button_Confirm_Click(object sender, EventArgs e)
        {
            SslTcpClient.RunClient("15.164.170.79", "DESKTOP-NHIE464\\kkh", textBox1.Text, textBox2.Text, requestvalue);

            //접속 서버 IP, 인증서 유효성 검사를 위한 인증서의 발급자 정보, 서버로 전송할 ID값, PWS값, 서버에서 로그인 여부를 저장할 bool변수
            if (SslTcpClient.IsSuccess)
            {
                vipdata = SslTcpClient.buf;
                UpdatePolicy();
                id       = textBox1.Text;
                password = textBox2.Text;

                string strLog;
                strLog = id + "α" +
                         NetworkInterface.GetAllNetworkInterfaces()[0].GetPhysicalAddress().ToString() +
                         "α" + "1" +
                         "α" + Get_MyIP();
                SslTcpClient.logWrite(strLog);

                this.Close();
            }
        }
Example #2
0
            public static void RunClient(string machineName, string serverName, string inputID, string inputPWS, bool requestvalue1)
            {
                // Create a TCP/IP client socket.
                // machineName is the host running the server application.
                client = new TcpClient(machineName, 9000);//ip와 포트를 입력하여 클라이언트 동작
                //Console.WriteLine("Client connected.");
                // Create an SSL stream that will close the client's stream.
                sslStream = new SslStream(//SSLStream 을 통해서 GetStream()함수 동작
                    client.GetStream(),
                    false,
                    new RemoteCertificateValidationCallback(ValidateServerCertificate),
                    null
                    );
                // The server name must match the name on the server certificate.
                try
                {
                    sslStream.AuthenticateAsClient(serverName);
                }
                catch (AuthenticationException e)
                {
                    //MessageBox.Show("Exception: {0}", e.Message);
                    if (e.InnerException != null)
                    {
                        //MessageBox.Show("Inner exception: {0}", e.InnerException.Message);
                    }
                    client.Close();
                    return;
                }
                // Encode a test message into a byte array.
                // Signal the end of the message using the "<EOF>".
                //메세지 전송 파트******************************************************************
                byte[] message = Encoding.UTF8.GetBytes(inputID + "αα" + inputPWS + "ΩΩ");
                // Send hello message to the server.
                sslStream.Write(message);
                sslStream.Flush();
                //데이터 전송을 위해 바이트 배열에 저장 여기서는 문자열 이므로 문자 인코딩방식과 보내려는 문자 + 구분자 %%는 문자와 문자의 구분자
                //$$는 문자의 끝을 나타냄
                //메세지 전송 파트*******************************************************************
                // Read message from the server.

                //메세지 수신 파트*************************************************************************
                string serverMessage = ReadMessage(sslStream);

                //ReadMessage 를 통하여 서버에서 전송해준 메세지를 변수에 저장하고 아래에서 로그인 여부를 체크
                //ReadMessage함수는 바이트 단위의 데이터를 받아 UTF8인코딩으로 저장한 후 Tostring으로 리턴하므로 최종적으로 string으로 저장 가능
                //MessageBox.Show(serverMessage);

                if (serverMessage.Equals("aΩ"))//실험을 위해 잠시 b$로 해놈 원래 a가 성공기고 나머지 모든 문자가 실패
                {
                    MessageBox.Show("로그인 성공");
                    //MessageBox.Show(serverMessage);

                    //키받는곧에서 뭔가 문제가 생기고있음 이부분을 규진이랑 확인해야할듯
                    string ReadBuffer;
                    ReadBuffer = ReadMessage(sslStream);
                    IsSuccess  = true;
                    //MessageBox.Show(ReadBuffer);
                    buf = new USER_STAT(ReadBuffer);
                }
                else
                {
                    //MessageBox.Show(serverMessage);
                    MessageBox.Show("로그인 실패");
                    IsSuccess = false;
                }
                //메세지 수신 파트*************************************************************************
                // Close the client connection.
                client.Close();
                return;
            }