2012-03-14 11 views
0

C#のレジストリにユーザー登録データを保存しようとしています。しかし、管理者権限がなければ、私はHKEY_LOCAL_MACHINEにアクセスすることはできません。私は管理者権限がないので、HKEY_CURRENT_USERブランチに保存することにしました。ライセンス情報をHKEY_CURRENT_USERに保存するC#のレジストリのブランチ

このアプローチは、ユーザーが商品を登録し、アカウントをウィンドウに切り替えると、アプリケーションが登録解除されるというアプローチです。商用ソフトウェアは、ユーザーのライセンスキーを格納するためにHKEY_CURRENT_USERブランチを使用しますか?ライセンスは1人のユーザーのため、1人のユーザー(Windowsユーザー)のみが他のユーザーの使用を妨げるキーを使用できるようにすると問題があります。

答えて

3

はなぜ

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)でユーザー固有の使用許諾契約書といくつかのkeyファイルを保存しませんか?

プログラムを実行するユーザーは、システム自体によって許可されたその場所にアクセスできます。

0

ユーザーが製品をアクティブ化しているときに、HKLMへの書き込みアクセスが許可されるようにプロセスを昇格させることができます。

ライセンスモデルによっては、このようにマシンごとに製品を登録することをお勧めします。異なるユーザーがすべてライセンスを使用することができます。

元のユーザーだけがライセンスを使用できるようにしたい場合は、HKCUは問題ありません。

0

私が助けなければ、私はレジストリから離れてしまう傾向があります。レジストリの使用を推奨しない可能性のある海賊防御方法はないかもしれませんが、この方法では製品を販売している場合、海賊版は非常に簡単です。

私が前に使用したアプローチは、アプリのapp.configにライセンスキーを保存することです。その後、それはあなたが依存することに固有のコンピュータを持っていないので、アプリと一緒にコンパイルされます。あなたのアプリが起動されると、設定ファイルにキーが保存され、アプリの各オープニングでキーが有効かどうかを確認するだけです。

この方法では、コンピュータに精通したユーザーがソフトウェアを海賊版にすることも難しくなります。

これが役に立ちます。

関連する問題