Ejemplo n.º 1
0
        private static bool CheckLoginData(string text, Socket currentSocket) //Check login data for conformity.
        {
            string[] arr      = text.Split('_');
            string   login    = Encryptor.EncryptString(arr[1]);
            string   password = Encryptor.EncryptString(arr[2]);
            string   uniqid   = arr[3];

            string[] pth = Directory.GetFiles(clientsDirectoryPath);
            foreach (var currentPath in pth)
            {
                if (File.ReadAllText(currentPath).Contains(login) && File.ReadAllText(currentPath).Contains(password))
                {
                    SendSocketData("acc", currentSocket);
                    Log("Found user: "******"err_lgin", currentSocket);
            Log("Can't find user: " + Path.GetFileName(login), false, LogStates.ConsoleText, Flag_LogMessageDate);
            return(false);
        }
Ejemplo n.º 2
0
        private static void ReceiveCallback(IAsyncResult AR) //Async delegated method to get requests from client sockets and transform them to string.
        {
            Socket currentSocket = (Socket)AR.AsyncState;
            int    received;

            try
            {
                received = currentSocket.EndReceive(AR);
            }
            catch (Exception e)
            {
                Console.WriteLine("Wrong client side! See error below:");
                currentSocket.Close();
                clientSockets.Remove(currentSocket);
                if (!Flag_FullErrors)
                {
                    Console.WriteLine("Client forcely disconnected.");
                }
                else
                {
                    Console.WriteLine(e.ToString());
                }
                Log("Failed to receive callback!", false, LogStates.Program, Flag_LogMessageDate);
                Log(e.ToString(), false, LogStates.Error, Flag_LogMessageDate);
                return;
            }
            byte[] recBuf = new byte[received];
            Array.Copy(buffer, recBuf, received);
            string text = Encryptor.DecryptString(Encoding.Unicode.GetString(recBuf));

            if (text != "c_check")
            {
                Log("Received callback - " + Encryptor.EncryptString(text), false, LogStates.Program, Flag_LogMessageDate);
            }

            CheckRequestType(text, currentSocket);

            currentSocket.BeginReceive(buffer, 0, BUFFER_SIZE, SocketFlags.None, ReceiveCallback, currentSocket);
        }
Ejemplo n.º 3
0
        private static bool CheckRegistrationData(string text, Socket currentSocket) //Check for registration accessibility.
        {
            string[] arr      = text.Split('_');
            string   login    = Encryptor.EncryptString(arr[1]);
            string   password = Encryptor.EncryptString(arr[2]);
            string   email    = Encryptor.EncryptString(arr[3]);
            string   phone    = Encryptor.EncryptString(arr[4]);
            string   uniqid   = arr[5];

            if (File.Exists(@"ClientsData\" + uniqid + ".ld"))
            {
                string[] pth   = Directory.GetFiles(clientsDirectoryPath);
                int      count = 0;
                foreach (var currentPath in pth)
                {
                    count++;
                    if (File.ReadAllText(currentPath).Contains(login))
                    {
                        SendSocketData("err_lgn", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                    else if (File.ReadAllText(currentPath).Contains(email))
                    {
                        SendSocketData("err_eml", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                    else if (File.ReadAllText(currentPath).Contains(phone))
                    {
                        SendSocketData("err_phn", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                }
                File.Create(@"ClientsData\" + uniqid + "_" + count.ToString() + ".ld").Close();
                Log("New file created: " + uniqid + "_" + count.ToString() + ".ld", false, LogStates.Program, Flag_LogMessageDate);
                File.AppendAllText(@"ClientsData\" + uniqid + "_" + count.ToString() + ".ld", BuildRegistrationStringDecrypted(login, password, email, phone));
                Log("Appended text to file " + uniqid + "_" + count.ToString() + ".ld" + ": " + BuildRegistrationStringDecrypted(login, password, email, phone), false, LogStates.Program, Flag_LogMessageDate);
                byte[] data_2 = Encoding.Unicode.GetBytes(Encryptor.EncryptString("acc"));
                currentSocket.Send(data_2);
                return(true);
            }
            else
            {
                string[] pth = Directory.GetFiles(clientsDirectoryPath);
                foreach (var currentPath in pth)
                {
                    if (File.ReadAllText(currentPath).Contains(login))
                    {
                        SendSocketData("err_lgn", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                    else if (File.ReadAllText(currentPath).Contains(email))
                    {
                        SendSocketData("err_eml", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                    else if (File.ReadAllText(currentPath).Contains(phone))
                    {
                        SendSocketData("err_phn", currentSocket);
                        Log("Failed to register new user!", false, LogStates.Program, Flag_LogMessageDate);
                        return(false);
                    }
                }
                File.Create(@"ClientsData\" + uniqid + ".ld").Close();
                Log("New file created: " + uniqid + ".ld", false, LogStates.Program, Flag_LogMessageDate);
                File.AppendAllText(@"ClientsData\" + uniqid + ".ld", BuildRegistrationStringDecrypted(login, password, email, phone));
                Log("Appended text to file " + uniqid + ".ld" + ": " + BuildRegistrationStringDecrypted(login, password, email, phone), false, LogStates.Program, Flag_LogMessageDate);
                byte[] data_2 = Encoding.Unicode.GetBytes(Encryptor.EncryptString("acc"));
                currentSocket.Send(data_2);
                return(true);
            }
        }
Ejemplo n.º 4
0
 private static void SendSocketData(string data_txt, Socket currentSocket) //Send data to client.
 {
     byte[] data = Encoding.Unicode.GetBytes(Encryptor.EncryptString(data_txt));
     currentSocket.Send(data);
 }