Smeezy Ответов: 1

Получение повторяющегося пароля для правильной работы?


Проект, который я делаю, предоставляет спецификации, которые имеют изменяющиеся уровни ревизии. То, что я пытаюсь сделать, - это заставить предупреждение за неделю до истечения срока действия. После истечения срока действия кто-то, пытающийся использовать его, должен будет ввести код, подтверждающий, что они проверили текущие уровни оборотов (для этого и предназначено недельное предупреждение). Я бы хотел, чтобы это происходило в один и тот же день каждый год.

В настоящее время он запрашивает пароль каждый раз, когда его открывают. Например, я ожидал, что сегодня меня попросят ввести пароль. Я ввел его и закрыл программу. Когда я открыл его, он снова попросил меня об этом. Я не ожидал, что меня снова спросят до следующего 7, 1.

Код доступа не предназначен для того, чтобы постоянно держать кого-либо вне программного обеспечения. Это на самом деле дано в сообщении, которое появляется. Это просто средство документирования человека, подтверждающее, что уровни rev являются текущими.

Пожалуйста, не спрашивайте, почему я так поступила. Я знаю достаточно, чтобы быть опасным. Если вам что-то бросается в глаза, пожалуйста, скажите мне или направьте меня туда, где я могу найти информацию. Я ничего не имею против того, чтобы выяснить все самостоятельно, но это вопрос "не знать того, чего я не знаю". Все вы в какой-то момент задавали вопросы и должны были учиться. Я делаю то же самое.

Спасибо

Что я уже пробовал:

private void Expiry() //This calls a separate form.
        {
            DateTime value1 = new DateTime(DateTime.Now.Year, 7, 1);
            DateTime value2 = new DateTime(DateTime.Now.Year, 7, 6);          
            
            if ((DateTime.Now > value1) && (DateTime.Now < value2)) //month, day in order
            {
                MessageBox.Show("Specs will expire on 07/07/. You will be asked to confirm rev levels are current.", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            if (DateTime.Now > new DateTime(DateTime.Now.Year, 07, 08)) //month, day in order
            {
                expire notice = new expire();
                notice.ShowDialog();
            }
            else
                if ((DateTime.Now < value1) || (DateTime.Now > value2)) //month, day in order
            {
                //MessageBox.Show("test");
            }
        }


Этот следующий код предназначен для управления паролем messagebox.

private void btnExpired_Click(object sender, EventArgs e)
        {            
            string password = txtPassword.Text;

            if (txtPassword.Text == "1818")
            {
                MessageBox.Show("Unlocked", "Accepted", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Hide();
            }
            else
            {              
                MessageBox.Show("Software is not useable.","No Password Entered", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                Application.Exit();
            }

1 Ответов

Рейтинг:
0

RmcbainTheThird

Похоже, вы что-то упускаете.

Во-первых, где вы храните дату/время, когда они в последний раз входили в систему, это то, что вы должны проверить

Во-вторых: используется ли это несколькими людьми? Если это так то для каждого человека вам понадобится уникальный идентификатор привязанный к дате последнего запуска программы и конечно же относящийся к первому выпуску место для его хранения


Smeezy

Есть несколько человек, которые установили его. Когда они открывают его, он автоматически проверяет наличие обновлений, которые я сделал на сервере.

Почему дата, когда они в последний раз открывали его, имеет значение? То, как я думаю об этой работе, заключается в том, что она просто функционирует в соответствии с календарем. Разве он не знает об этом из компьютера?

Я не пытаюсь быть трудным. Я просто действительно не понимаю процесс, который вы объясняете, и это, вероятно, потому, что у вас нет всей информации. Кое-что из следующего абзаца пришло мне в голову только после прочтения вашего ответа.

Мне просто нужно, чтобы он был специфичен для компьютера, а не для человека. Поэтому, если появится предупреждение, у них (кому бы ни принадлежал компьютер) есть 5 дней, чтобы проверить изменения. На 6 - й день они вводят код доступа, чтобы показать, что они подтвердили, что уровни являются текущими. Другой вариант заключается в том, что они пропустили предупреждение. Всякий раз, когда они открывают его снова, он заблокирован, и тогда они должны проверить изменения. В любом случае, если они используют его с устаревшей версией, то они (кому бы ни принадлежал компьютер) одобрили его. Никто другой не смог бы.

Тем не менее, моя проблема заключается в том, что программное обеспечение работает без запроса пароля каждый раз, когда оно открывается после того, как они вводят его в первый раз. До тех пор, пока не наступит период предупреждения в следующем году.

MadMyche

Тогда почему бы вам не сделать так, чтобы ваш "сервер обновлений" отслеживал компьютеры и время их последнего обновления?

Smeezy

MadMyche, просто, тогда я должен был бы контролировать уровни оборотов. Что, если я уйду или покину эту компанию, а обороты истечут? Я делаю так, чтобы каждый человек был ответственен за проверку правильности информации, которую он использует каждый год. Мы же инженеры. Мы уже должны это сделать. Разница в том, что в настоящее время мы можем выбросить старый rev и распечатать новый. То, что я здесь строю, просто делает нашу работу более эффективной.

MadMyche

Затем автоматизируйте процесс пересмотра, следите за тем, какая машина имеет какую ревизию; и тогда это будет еще более эффективно.

Smeezy

Некоторые из этих оборотов не меняются в течение 30 лет, некоторые-5 лет. Некоторые из этих оборотов не видны одному человеку в течение двух лет, в то время как другой может использовать некоторые из них каждый день.

Я выполняю обновления. Я бы не знал, изменился ли rev, если бы мне не нужно было использовать спецификацию, которая изменилась. Кто-то еще может знать об этом изменении.

Побуждая их проверять обороты каждый год, шансы на то, что что-то будет пропущено, равны нулю. В то время как если бы все было сделано так, как вы предлагаете, кто-то открыл бы спецификации, просто предполагая, что они актуальны, на самом деле там может быть один, о котором я не знаю, и у меня не было бы никакого способа узнать, если бы я не использовал его.

Поэтому независимо от того, кто использует какой rev на какой спецификации, я буду знать, что изменение необходимо. Вот почему каждый человек несет ответственность за проверку своих собственных уровней rev.