2011-10-26 9 views
3

私はより一般的な質問がありますが、C#でこれを実装する際の助言も非常に高く評価されます。 私はC#でPCのウィンドウベースのプログラムを作っていますが、プログラムが実行されているコンピュータがインターネットに接続されているときに、このプログラムがサーバーのどこかにあるデータベースに少量のデータを送信するという考えがあります。 PCプログラムは多くの人が使用する予定ですが、どのユーザー(どのプログラム)がデータを送信したのかを知りたいです。だから、私はダウンロードしてインストールする人々のためにそこに1つのプログラムを置くだろう。このプログラムは次に、いくつかのデータ(ユーザーがプログラム内で何をするかに依存する)を中央データベースに送信し、そこにあるプログラムのどれがデータを送信したのか知りたいと思います。このようにして、プログラムのどの機能が最も多く使われているのかを知ることができます。多くの人が1つ以上の機能を使用していますか...コンピュータプログラムを一意に識別する方法は?

質問は1つのプログラムを作成する方法ですが、そのプログラムの異なる「インスタンス」?

これを達成する方法はありますか?

ご回答いただきありがとうございます。 乾杯!

p.s:私はちょうどPCプログラミングを学び始めているので、初心者の方にも解答を簡単にしてみてください。 :)

+0

パブリックIPを使用することも、メンバーシップシステムを追加してユーザー名を記録することもできます。 – jrummell

答えて

9

クライアント上にGUIDを作成し、それをどこかの設定に保存してから、それを各メッセージと共に送信します。

これは、ユーザーベースまたはコンピュータベースの忠実度が得られるように、ユーザーごとまたはグローバル設定でコンピューターに保存できます。

これには、個人情報を保存しないという利点があります。プライバシーに関する法律に違反することはありません。

+0

私の考えはまさに! –

+0

@Kiley Naro:OK、明らかにGUIDがここに行くのに好ましい方法です。私は心配しています:ソフトウェアをアンインストールするか、コンピュータをフォーマットしてからアプリケーションを再インストールする必要がある場合は、新しいGUIDが作成され、そこからデータベースがこのユーザーを新しいユーザーとして扱います。私はそれを考えて正しいのでしょうか?それともその周りに道があるのですか?私は何とかユーザーのコンピュータに固有のデータを何とか使うことはできませんか?誰かがIPを言いましたが、それが静的でない場合は変更されます。 – EEALNT

+0

@ user1015043あなたはあなたの前提で正しいです。レジストリキーにGUIDを格納し、インストール時にそのキーが存在するかどうかを確認するなどの作業を行うことができます。そうであれば、それをきれいにするか、そのままにしておくかの選択肢をユーザに提示する。それ以外では、MACアドレスはすべてのネットワークアダプタに固有のMACアドレスを使用する必要がありますが、ネットワークアダプタが変更された場合(非統合ネットワークアダプタが存在するため)に何が起こるか自問自答する必要があります。 –

2

MAC addressとログインしたユーザー名(ハッシュされる可能性があるため、個人情報を保持しない可能性があります)の組み合わせを使用して、マシンとユーザーの組み合わせを一意に識別できます。

2

あなたが何をしても、データを送信する前に各ユーザーの許可を求めてください。そうしないと、ユーザーとの親善を失うことになります。インストーラでは、プログラムが読み込まれるたびにGUIDをファイルシステムに書き込んで、そのGUIDを読み取ることを検討してください。インストーラには、「顧客体験を改善するために匿名の使用情報を送信する」のようなオプションもあります。チェックボックスのチェックを外すと、その事実も記録されます。

+0

私は前の記事と同様の質問があります。コンピュータをアンインストールまたはフォーマットしないで、新しいGUIDを設定して、同じユーザーに新しいGUIDを提示しないでください。ファイルシステムにGUIDを書き込むこととはどういう意味ですか?それをディスクのどこかのファイルに書き込んでいますか?そのようなものには通常どんな種類のファイルが使われていますか?たぶん普通の古いtxtではないでしょうか? – EEALNT

+0

私はあなたが別のコンピュータを「偽装する」(別のコンピュータのGUIDを推測することによって)誰かが気になるとは思わないでしょう。私はおそらく、そのファイルを "unique.prodkey"という名前の隠しファイルにしています(拡張子はデフォルトのプログラムを持っていません)。ほとんどのあなたのユーザーは恐らくこのファイルを見ることはありませんが、それを開くプログラムではありません。 –

関連する問題