Пример #1
0
 public bool CheckPassword(byte[] data, int id)
 {
     byte[] Password     = new byte[Const.PASSWORD_SIZE];
     byte[] HashPassword = FileWork.getSHA1(Password);
     for (int i = 0; i < HashPassword.Length; i++)
     {
         if (HashPassword[i] != ClientsList[id - 1].Password[i])
         {
             return(false);
         }
     }
     ClientsList[id - 1].isAuthorised = true;
     return(true);
 }
Пример #2
0
 public bool CheckLogin(byte[] data, int id)
 {
     byte[] Login = new byte[Const.LOGIN_SIZE];
     for (int i = 0; i < Const.LOGIN_SIZE; i++)
     {
         Login[i] = data[i];
     }
     if (FileWork.CheckLoginExistence(Encoding.Unicode.GetString(Login)))
     {
         ClientsList[id - 1].isValidLogin = true;
         ClientsList[id - 1].Login        = Login;
         ClientsList[id - 1].Password     = FileWork.GetClientPassword(Encoding.Unicode.GetString(Login));
         return(true);
     }
     return(false);
 }
Пример #3
0
        public bool SetPassword(byte[] data, int id)
        {
            byte[] DecodeData = this.ClientsList[id - 1].Cipher.decode(data);
            if (DecodeData[Const.CONTROL_NUMBER_POSITION] != Const.CONTROL_NUMBER)
            {
                this.ServerMessage("подпись невалидна", id);
                return(false);
            }
            byte[] newPassword = getData(DecodeData);

            if (this.ClientsList[id - 1].isAuthorised)
            {
                this.ClientsList[id - 1].Password = FileWork.getSHA1(newPassword);
                if (!FileWork.SaveClientInfo(Encoding.Unicode.GetString(this.ClientsList[id - 1].Login),
                                             this.ClientsList[id - 1].Password))
                {
                    this.ServerMessage("не удалось поменять пароль", id);
                    return(false);
                }
                ///////////////////////////////////////////////////////////SaveToFile

                this.ServerMessage("пароль изменен", id);
                return(true);
            }
            else
            {
                if (FileWork.getSHA1(newPassword) == this.ClientsList[id - 1].Password)
                {
                    this.ClientsList[id - 1].isAuthorised = true;
                    ServerMessage("клиент авторизирован", id);
                    BroadcastAboutNewUser(this.ClientsList[id - 1].Id, this.ClientsList[id - 1].Login,
                                          this.ClientsList[id - 1].Cipher.publicKey);
                }
            }

            return(false);
        }
Пример #4
0
        public bool SetLogin(byte[] data, int id)
        {
            byte[] oldLogin   = this.ClientsList[id - 1].Login;
            byte[] DecodeData = this.ClientsList[id - 1].Cipher.decode(data);
            if (DecodeData[Const.CONTROL_NUMBER_POSITION] != Const.CONTROL_NUMBER)
            {
                this.ServerMessage("подпись невалидна", id);
                return(false);
            }
            byte[] newLogin = getData(DecodeData);

            if (this.ClientsList[id - 1].isAuthorised)
            {
                if (this.isUniqLogin(newLogin))
                {
                    this.ClientsList[id - 1].Login = newLogin;
                    this.ServerMessage("логин изменен", id);
                    BroadcastAboutNewUser(this.ClientsList[id - 1].Id, this.ClientsList[id - 1].Login,
                                          this.ClientsList[id - 1].Cipher.publicKey);
                    MessageAboutUsers(id);
                    byte[] Password = FileWork.GetClientPassword(Encoding.Unicode.GetString(oldLogin));
                    FileWork.Deletefile(Encoding.Unicode.GetString(oldLogin));
                    if (!FileWork.SaveClientInfo(Encoding.Unicode.GetString(newLogin), Password))
                    {
                        this.ServerMessage("не удалось вас зарегистрировать", id);
                        return(false);
                    }
                }
            }
            else
            {
                if (!this.isUniqLogin(newLogin))
                {
                    this.ClientsList[id - 1].Login = newLogin;
                    this.ServerMessage("логин принят", id);

                    this.ClientsList[id - 1].Password = FileWork.GetClientPassword(Encoding.Unicode.GetString(newLogin));
                    BroadcastAboutNewUser(this.ClientsList[id - 1].Id, this.ClientsList[id - 1].Login,
                                          this.ClientsList[id - 1].Cipher.publicKey);
                    MessageAboutUsers(id);
                    ///////// чтение пароля из файла
                }
                else
                {
                    this.ClientsList[id - 1].Login    = newLogin;
                    this.ClientsList[id - 1].Password = new byte[Const.PASSWORD_SIZE];
                    if (!FileWork.SaveClientInfo(Encoding.Unicode.GetString(newLogin), this.ClientsList[id - 1].Password))
                    {
                        this.ServerMessage("не удалось вас зарегистрировать", id);
                        return(false);
                    }
                    /// запись логина пароля в файл
                    this.ClientsList[id - 1].isAuthorised = true;
                    this.ClientsList[id - 1].isValidLogin = true;
                    this.ServerMessage("вы зарегистрированы: ", id);
                    BroadcastAboutNewUser(this.ClientsList[id - 1].Id, this.ClientsList[id - 1].Login,
                                          this.ClientsList[id - 1].Cipher.publicKey);
                    MessageAboutUsers(id);
                }
            }
            return(false);
        }