2013-03-26 131 views
3

現在我們正在開發一個基於Windows的小型應用程序。我們過去30天提供試用版許可證,30天到期後,產品將無法使用。解決日期時間許可證問題的最佳方法

現在,這裏是我的問題:

想象一下,一個客戶端誰下載並在1月1日和2月1日安裝的應用程序,試用期將結束。現在在1月31日,如果他再次將系統時間更改爲1月1日,系統將從頭開始計數,因此客戶可以通過簡單地更改系統時間來延長試用期。

根據社區建議,我們可以檢查互聯網/日期時間,但作爲一個小問題,我們不能通過服務器隨機驗證許可證,如果用戶離線並更改他的系統日期時間,那麼會再次出現問題。還有其他方法可以解決這個問題嗎?

我已經檢查過this question

解決此問題的最佳方法是什麼?該產品是一個C#應用程序。

+1

您允許訪問互聯網嗎?如果是這樣,你可以去互聯網時間服務器。 – 2013-03-26 07:37:10

+5

您是否可以不保存應用程序上次打開到文件的時間。然後,當應用程序下次打開時,您可以檢測到時鐘已被篡改。當然,您應該允許用戶稍後更改時間,但如果多次執行,則可能會禁止使用該應用程序。 – foens 2013-03-26 07:38:24

+0

如果你有互聯網,然後去互聯網時間服務器,否則另一個選項使用註冊表編輯器,創建文件夾和設置安裝/失效/上次執行日期時間和應用程序運行檢查您的日期 – 2013-03-26 07:53:07

回答

5

也許最好的解決方案是使用在線服務器驗證許可詳情。如果你讓你的應用程序依賴於客戶端機器的數據,那麼他們總有可能會破壞它。但爲此,您的客戶端必須能夠訪問互聯網

6

根據您的要求,我所看到的,無法檢查在線服務器的日期。 這對離線系統非常明顯。

所以,你需要做的幾件事 -

  1. 設置高encypted數據的形式登記日期和expirydate和地方保存在註冊表數據庫。

  2. 當應用程序每次打開時,獲取最新的時鐘日期並將加密的數據保存在註冊表中。

  3. 確保檢查時鐘日期和上次使用日期。如果上次使用日期< clockdate,則一切正常,但如果usagedate> clockdate,用戶已更改時鐘日期。所以,不要更新註冊表。

  4. 一旦lastusagedate達到失效日期,彈出消息「您的試用已過期。」。

希望這會有所幫助。

歡呼聲