簡體   English   中英

確定訂閱是否仍然有效而不與DateTime.Now進行比較

[英]Determine if subscription is still valid without comparing to DateTime.Now

這個問題可能很容易且答案很明顯,但我現在似乎無法找到解決方案。 我構建了一個有很大缺陷的應用程序。 在我的User類的一個屬性中,我檢查用戶訂閱是否已過期。 為此,我將訂閱的結束日期與DateTime.Now進行比較:

return (DateTime.Compare(DateTime.Now, subEndDate) > 0);

不需要天才的用戶就能意識到,只需將Windows日期更改為更早的日期,然后該應用程序就不會過期。 因此,我認為不應該與DateTime.Now進行比較,是否可以使用一種更好的方法來驗證訂閱日期?

謝謝。

問候,

調用網絡服務或檢查數據庫以確定訂閱是否仍處於活動狀態

也許您可以從客戶端程序中提取訂閱到期邏輯並將其放入外部服務,然后您的客戶端應用程序可以連接到其他服務器並根據傳入的用戶參數檢索到期詳細信息?

這真的重要嗎? 如果您的產品是純粹基於Web的,那么您唯一需要擔心的就是服務器時間。 如果在未經您同意的情況下可以更改服務器時間,則可能要擔心更大的問題。

如果您的產品基於台式機,那么您希望內置多少保護? 如果您只想保護您的臨時用戶,那么您擁有的解決方案可能就足夠了。 如果確定有人盜版您的軟件,那么他們可能會成功。 如果您想讓這些用戶更難,一種解決方案是保留運行該應用程序的所有時間的日志。 通過這種方式,您可以了解他們正在玩時鍾。

有幾台NTP服務器可供您免費使用...它們返回准確的時間,您的臨時用戶將無權操縱這些服務器...要訪問它們,您有多種選擇-盡管沒有內置的:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM