1

基本的にWebAPIのラッパーである.netgithubプロジェクトがあります。テストプロジェクトでは、APIキーを使用してAPIを呼び出しています。このキーを非公開にする必要がありますが、Visual Studioプロジェクトでこれを実現するにはどうすればよいですか?

Pythonのような他のいくつかのプロジェクトでは、gitにファイル(config.py)を無視させ、。のようなものを使用させることができますconfig.example.py。ただし、Visual Studioの場合、ファイルが見つからないため、プロジェクトはコンパイルされませんConfig.cs。これを解決する適切な方法は何ですか?ファイルを無視するのと同じ方法を使用して、名前を変更するビルドスクリプトを実行させることを考えていConfig.example.csますConfig.cs

4

4 に答える 4

9

これは.configファイルに最適です。Webアプリケーションかコンソールアプリケーションかに応じて、プロジェクトにweb.configファイルまたはapp.configファイルがあります。

このセクションを使用してappSettings、APIキーを保存できます。

さらに簡単にするために、実際にこのセクションを別のファイル、つまりspecialappsettings.configから読み取ってから、リポジトリからその1つのファイルを無視することができます。

web.config(またはapp.config)を変更します。

<configuration>
<appSettings file="specialappsettings.config">
</appSettings>
<system.web>
<!-- standard web settings go here -->
</system.web>
</configuration>

新しいspecialappsettings.configファイルを作成します。

<appSettings>
<add key="APIKey" value="YourApiKeyValue" />
<add key="AnotherKey" value="AnotherValue" />
</appSettings>

これは、コードから次の方法でアクセスできます。

var apiKey = ConfigurationManager.AppSettings["APIKey"];

ノート:

  • 設定を元のweb.configファイル内に保持することもできますが、これにより、プロジェクトの残りの必要な構成の詳細に影響を与えることなく、gitリポジトリからの特定の設定ファイルのみを無視できます。
  • 同じ「キー」をどちらのファイルにも保存できますが、外部ファイルは元のweb.configファイルの値を上書きします。
于 2012-09-05T22:42:09.087 に答える
1

App.configプロジェクトのファイルを探している可能性があります。<application>.exe.configコンパイル時にコピーされます。ユーザーは、必要に応じてその構成ファイルを編集できます。

その構成ファイルで、APIキーを追加できます。

<configuration>
    <appSettings>
        <add key="APIKey" value="12345"/>
    </appSettings>
</configuration>

次に、以下を使用してコードからアクセスできますConfigurationManager.AppSettings

string apiKey = ConfigurationManager.AppSettings["APIKey"];
于 2012-09-05T22:38:49.910 に答える
1

1つのオプションは、ソースに秘密鍵をハードコーディングする代わりに.configファイルを使用することです。

詳細情報C#での設定の使用ステップバイステップガイド

<configuration>
   <appSettings>
      <add key="SecretKey" value="0" />
   </appSettings>
</configuration>


var secretKey = ConfigurationManager.AppSettings.Get("SecretKey");
于 2012-09-05T22:40:43.713 に答える
-1

おそらく、Config.csファイルの外部にキーを保存し、実行時にロードすることができます。

ボーナス、あなたのコードを使用している他の人は、APIキーに変更するためにプロジェクトを再コンパイルする必要はありません。

于 2012-09-05T22:35:27.227 に答える