2012-02-09 3 views
0

私は、Webサービスから情報を取得し、認証のためにAPIキーを使用するC#プログラムに取り組んでいます。APIキーがコミットされないようにするのが最も実用的ですか?

現在私はこの値をプログラムでハードコードしていますが、コードを公開githubリポジトリに保存したいので、これを手作業で削除してからコミットしなければなりません。

私はコード内にまだAPIキーを置いて誤ってコミットするのを防ぐ自動化された方法は何ですか?

Visual Studioでビルド前コマンド実行オプションを使用する際に秘密を追加するスクリプトを作成しようと考えていました。こうすることで、APIキーをコードに保存する必要がなくなり、ビルド後に削除されるので、事故によってそれが起こることは決してありません。

+1

APIキーを暗号化された設定ファイルに入れて、そのファイルをリポジトリから除外することができます... – Yahia

+0

@Yahia私もその考えを持っていましたが、おそらく-distファイルに類似するものを含める必要がありますコードをチェックアウトする人は、それを設定する方法を知っているでしょう。 –

+0

私は問題を理解していません。空の/サンプルファイルをチェックインするだけで、リポジトリに何らかのreadmeやプロジェクトに関連する基本を記述したプロジェクトの何かを置くと良い習慣とみなされます。 。 – Yahia

答えて

2

configuration fileまたはWindows Registryを使用してください。

また、暗号化することをお勧めします。Windowsでは、データ保護API(DPAPI)を使用できます。 .Net 2.0+は非常に使いやすいクラスコールProtectedDataを持っています。このようにして設定をコミットすると、キーは暗号化されたままで、データ保護の範囲に応じて、マシン上だけでなく、そのマシン上のユーザーに対しても機能します。あなたは、人々が自分のマシンで使用するためにキーに入力するいくつかの方法を作りたいと思うでしょう。

0

web.configに追加し、web config transformationsを設定して、適切な設定(デバッグ、リリースなど)を選択してプロジェクトをビルドするときにダイナミックに変更できます。これを使用して、キーをダミー値で置き換えることができます。

+0

申し訳ありませんが、これはデスクトップアプリケーションであると言わざるを得ないでしょう。 –

+0

app.configも動作しています.... – Simon

関連する問題