Получить "оригинальную" дату и время - PullRequest
0 голосов
/ 16 февраля 2019

Я создаю программу с лицензией на основе даты, если срок ее действия истек, лицензия недействительна.Однако моя проблема заключалась в следующем:

Если пользователь изменил дату компьютера, он также изменил бы программу и, таким образом, "взломал" программу.Я решил это следующим образом:

В PHP я получаю дату сервера Hosting / MySQL:

127.0.0.1 / getdateserver.php

$query  = "SELECT NOW() as `now`";
        $result = $conn->query($query);
        $row    = $result->fetch_array();
        $now    = $row['now'];
        echo "$now";

В C #Я делаю запрос каждую секунду для моего сайта и дату возвращения сейчас:

 private Timer timer;
private DateTime timeserver;

    public void InitTimer()
            {
                timer = new Timer();
                timer.Tick += new EventHandler(timer_Tick);
                timer.Interval = 1000;
                timer.Start();
            }

    private void timer_Tick(object sender, EventArgs e)
            {
    setDateServerAsync();
    }

        private async void setDateServerAsync()
                {
                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri("127.0.0.1/getdateserver.php");
                    HttpResponseMessage response = await client.GetAsync("");
                    response.EnsureSuccessStatusCode();
                    string result = response.Content.ReadAsStringAsync().Result;

                    timerserver = DateTime.ParseExact(result, "yyyy-MM-dd HH:mm:ss",
                                               System.Globalization.CultureInfo.InvariantCulture);
                }

Все работает отлично.Но этот метод выполняет много запросов в минуту (RPM), и, поскольку я могу иметь несколько пользователей, использующих программу, число только увеличивается.Поэтому мой вопрос: есть ли другие эффективные методы?

PS: моя программа работает только с интернетом

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