Esempio n. 1
0
        public void VerifyUserLogin(string username, string password, TcpClient client, string userPath)
        {
            string path = userPath + @"\" + username + ".txt";

            if (File.Exists(path) == false)
            {
                Protocol loginInvalid = ProtocolCreator.LoginInvalid();

                NetworkManager.SendMessage(loginInvalid, client);
            }
            else if (File.Exists(path) == true)
            {
                if (VerifyUserData(username, password, path) == true)
                {
                    Protocol loginOK = ProtocolCreator.LoginOk();
                    NetworkManager.SendMessage(loginOK, client);

                    string protocolString = loginOK.ToString();

                    char[] protocolStringArray = protocolString.ToCharArray();

                    string sessionKey = string.Empty;

                    if (protocolStringArray[0] == 'C' && protocolStringArray[1] == 'H' && protocolStringArray[2] == 'A' && protocolStringArray[3] == 'T' && protocolStringArray[4] == 'L' && protocolStringArray[5] == 'O')
                    {
                        for (int i = 6; i < protocolStringArray.Length; i++)
                        {
                            sessionKey = sessionKey + protocolStringArray[i];
                        }

                        this.OnlineUser.Add(new User(username, client, sessionKey));

                        Console.WriteLine("{0} ({1}) has logged in!", username, ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString());

                        MessageManager messageManager = new MessageManager(this, client);
                        messageManager.ForwardMessagesToAllClients();
                    }
                }
                else
                {
                    Protocol loginInvalid = ProtocolCreator.LoginInvalid();
                    NetworkManager.SendMessage(loginInvalid, client);
                }
            }
        }