5

現在、小さなWindowsベースのアプリケーションを開発しています。以前は試用版のライセンスを30日間提供していましたが、30日間が経過すると、製品は使用できなくなります。

これが私の問題です:

1月1日にアプリケーションをダウンロードしてインストールし、2月1日までに試用期間が終了するクライアントを想像してみてください。1月31日、システム時刻を再度1月1日に変更すると、システムは最初からカウントを開始するため、クライアントはシステム時刻を変更するだけで試用期間を延長できます。

コミュニティの提案に従って、インターネット/日付の時刻を確認できますが、小さな懸念事項として、サーバーを介してライセンスをランダムに検証することはできません。ユーザーがオフラインになり、システムの日時を変更すると、問題が発生します。また。この問題に取り組む他の方法はありますか?

私はすでにこの質問をチェックしました。

この問題に取り組むための最良の方法は何ですか?この製品はC#アプリケーションです。

4

2 に答える 2

10

あなたの要件に従って、私が見るところ、あなたは日付についてオンラインサーバーをチェックすることができません。これはオフラインシステムでは非常に明白です。

だから、あなたはいくつかのことをする必要があります-

  1. 登録日と有効期限を高暗号化データの形式で設定し、レジストリデータベースのどこかに保存します。

  2. アプリケーションが毎回開いている間に、最新の時刻を取得し、暗号化されたデータをレジストリに保存します。

  3. 時計の日付と最終使用日を必ず確認してください。最後のusagedate<clockdateの場合はすべて問題ありませんが、usagedate> clockdateの場合、ユーザーは時計の日付を変更しています。したがって、レジストリを更新しないでください。

  4. lastusagedateが有効期限に達すると、「試用期間が終了しました。」というメッセージが表示されます。

お役に立てれば。

乾杯

于 2013-05-13T20:00:09.660 に答える
6

おそらく最善の解決策は、ライセンスの詳細を確認するためのオンラインサーバーを用意することです。アプリケーションをクライアントマシンのデータに依存させると、アプリケーションがデータを破壊する可能性が常にあります。ただし、そのためには、クライアントがインターネットにアクセスできる必要があります

于 2013-03-26T07:37:53.343 に答える