質問

C# と .NET 2.0 を使用しています。私のアプリにはさまざまなユーザーを確認する何らかの方法が必要なので、ハードウェア ID を使用しますが、使用できるのは次のとおりです。

  • MAC アドレス - 簡単に変更可能ですが、誰もがそれを持っているわけではありません // いいえ
  • プロセッサ ID - WMI を使用すると、CPU モデルの値が返されますが、一意ではありません // いいえ
  • マザーボードのシリアル - すべてのマザーボードにシリアルがあるわけではありません // いいえ
  • Windows のボリューム シリアル - Windows の再インストールとボリュームのフォーマットで変更されるかどうかはわかりません

hwid について言及していないことはありますか?誰もが持っていて、Windows を再インストールしても消去されないものが欲しいのです。それ以外の場合は、Windows のボリューム シリアル番号を使用する必要があります。


編集:コメントから、HDD ID を使用するのが最善だと思います。入手方法は?編集2:SCSI ドライブにはシリアルがないということを読みました。本当?

最終編集:アプリでルート ドライブのシリアルをすでに使用しています。かなりうまくいきます。皆さんありがとう。

役に立ちましたか?

解決

HDDシリアル番号:ユニークな、不変の、そして誰もがそれを持っています。

ではない完璧なオプションけど...

他のヒント

さて、私は、複数のIDのために行くと思います。あなたは十分なIDを組み合わせた場合、彼らはあなたに十分な一意性を取得します。

EDIT:あなたはまた、ハードディスク上の場所のために行くかもしれないあなたのプログラムは(プラッター、シリンダーなど。)あまりにもインストールされていた。

なぜあなたは、ハードウェアIDを使用したいのですか?私は、セキュリティベースのフォーム(またはADに基づく)のいくつかの種類に自分自身を行くと思います。

ことを考えると、しかし:HWIDについての事は、それが特定のコンピュータの構成を識別することです:システムの変更がある場合は、それを変更するように設計されています。あなたは、Windowsのボリューム通し番号を再インストールし、再フォーマットに変更される可能性があることに言及、しかし、あなたのソフトウェアは、その時点で再インストールする必要がないのだろうか? HDDのシリアルはまた、いくつかの理由のために、たとえば、場合、ユーザーのスワップHDDを変更することができます。

利用可能なオプションの

あなたはHWIDを使用する必要がある場合、あなたはおそらく1つ(またはそれ以上)を選択する必要があります周りの独自性とのいずれかのコードを提供し、または約ユーザーに通知するために、ハードウェアは再インストールが必要なおよび/または再構成を変更しますお使いのソフトウェアのます。

MACアドレスは、非常に信頼性がありません。 あなたは、このようなCPUのIDやHDD IDE IDを変更することができないものを使用する必要があります。

ここで私が言いたいです。
http://www.soft.tahionic.com/download-hdd_id/index.html
http://www.soft.tahionic.com /download-hdd_id/hardware%20ID%20programmer%27s%20DLL.htmlする

<時間>

そして、あなたの質問に答えるために、はい、SCSIハードウェアIDを持っていません。

ユーザーがIDチェックを改ざんしたいんつまり、あなたがセキュリティや信頼性だけを考える必要がありますか? あなたは(高)、セキュリティが必要な場合は、「ソフトウェア保護」のいずれかの製品を購入し、これはそれを自分で行うことよりもはるかに安いです。

いいえ、高いセキュリティを必要としませんか? => 別の可能性は、ユーザまたはマシンSIDを使用することです。あなたは、あなたのアプリケーションがelvated =>ユーザーが管理者で実行されていることを考慮に入れる必要があります。

最後ではなく、少なくとも:(おそらくさまざまな場所での)HKEY_CURRENT_USERの下のレジストリにいくつかのバイトのランダムな値を書き込み、IDとしてこれらを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top