Ejemplo n.º 1
0
        private void AsyncAutorization(Alarmus.AutorizationMessage msg)
        {
            AsyncClient.SetToNullServerResponse();
            AsyncClient.SendMessage(msg);

            /* Серебрянная пуля.
             * Поток будет ждать, пока данные полностью дойдут
             * Если избегать этого, то, недождавшись ответа от сервера, сработает ветка SR_NULL
             * И это происходит достаточно часто.
             */
            Thread.Sleep(500);

            if (AsyncClient.GetServerResponse() == Alarmus.ServerResponse.SR_AUTORIZATION_SUCCESS)
            {
                /*
                 * Вызываем диспетчер, который будет вызывать методы связанные с UI в thread safe режиме
                 */
                Dispatcher.Invoke(new System.Action(() => setButtonEnable(true)));
                Dispatcher.Invoke(new System.Action(() => changeView()));
                return;
            }
            else if (AsyncClient.GetServerResponse() == Alarmus.ServerResponse.SR_AUTORIZATION_FAILED)
            {
                MessageBox.Show("Невозможно авторизироваться. Проверьте логин и пароль");
            }
            else if (AsyncClient.GetServerResponse() == Alarmus.ServerResponse.SR_NULL)
            {
                MessageBox.Show("Невозможно авторизироваться. Попробуйте позже");
                Alarmus.Log.Warning("Этого не должно было произойти...");
            }

            Dispatcher.Invoke(new System.Action(() => setButtonEnable(true)));
        }
Ejemplo n.º 2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            loginBtn.IsEnabled = false;
            Alarmus.AutorizationMessage msg = new Alarmus.AutorizationMessage(Alarmus.ClientType.CLIENT_USER, loginBox.Text, passwordBox.Password);

            AsyncClient.Connect(addressBox.Text, 8888); //TODO: Заменить адрес из текст бокса на параметр
            clientThread = new Thread(() => AsyncAutorization(msg));
            clientThread.Start();
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="passwordHash"></param>
        /// <returns></returns>
        public static bool HasPassword(Alarmus.AutorizationMessage msg)
        {
            connection.Open();

            string passwordCommand = "SELECT * FROM Users WHERE login = '******' AND password = '******'";

            SQLiteCommand    command = new SQLiteCommand(passwordCommand, connection);
            SQLiteDataReader reader  = command.ExecuteReader();

            if (reader.HasRows)
            {
                connection.Close();
                return(true);
            }

            connection.Close();
            return(false);
        }