2017-08-14 14 views
4

これまでのところ、gitignoreを使ってweb.congfigとweb.release.configファイルを無視して、接続文字列(パスワードを含む)がgitリポジトリに格納されないようにしています。どのように私はgitリポジトリでASP.net接続文字列のパスワードを安全に保つのですか?

これは、暗号化されたリムーバブルメディアに渡されたweb.configの変更によってうまくいきました。

しかし、私はVisual Studio Team Servicesに継続的な統合とコードの保存を使用し始めました。これが機能するには(修正案を提示できない限り)、プロジェクトの一部としてweb.configを含める必要があります。

私はMSSQL DBを使用してWindowsサーバー(社内)でアプリケーションをホストしており、別のサーバー上のOracle DBに接続しています。

私は最も高度な開発者ではありませんが、これまでのところ自分自身を持っています。すべてのサポートは大歓迎です。

+0

可能な複製(https://stackoverflow.com/questions/28210564/how-to-set-database-connection-strings-in – hardkoded

答えて

1

をあなたのコードを公開しているパス。今、ウェブの設定では、あなたの接続を一覧表示することができます。その後

<?xml version='1.0' encoding='utf-8'?> 
<configuration> 
    <connectionStrings configSource="connections.config"/> 
</configuration> 

More detail about external configuration file

として使用すると、接続文字列のため、このファイルを参照することができますが、ファイル

<connectionStrings> 
    <add name="Name" 
    providerName="System.Data.ProviderName" 
    connectionString="Valid Connection String;" /> 
</connectionStrings> 

をconnections.configためにあなたの接続文字列を移動すると言います.configファイルgitignoreファイル

次にgit repoにプッシュします。

ただし、お使いのアプリケーションが他の開発者のために働くために必要な設定が含まれていることを確認してください。接続の詳細を別のファイルに移動したため、そのアプローチに精通していない可能性があり、問題が発生する可能性があります。

[オンラインのVisual Studioからの連続的展開のためにデータベース接続文字列を設定する方法]の
+0

ありがとう、はいこれが最善の方法だと思われますが、私はconnections.configファイルをビルド時にプロジェクトから除外しなければなりません。私はVSTSからまだ展開していませんが、少なくともそれは正常に構築されます。 – KELF

1

ログイン資格情報をソース管理リポジトリに入れないようにしてください。

同時に、CIを考慮しなくても、何らかの理由で以前のリリースの環境を再現している場合はweb.configのように見えるかどうかを判断するのに役立ちません。 (バグの起源の追跡など)。

一般的なアプローチは、影響を受ける設定ファイルごとにテンプレートを保存することです。 (これは、機密性の高い値だけでなく、環境やdevワークステーション間でローカルな値にも有効です)

最も簡単な場合、開発者はコードをチェックアウトしてweb.config.template )をweb.configに変更し、web.configを編集して必要な値を挿入します。 (を無視するようgitに指示し続けます)

CIシナリオの場合、値の挿入を自動化するようにビルドプロセスを設定します(挿入するのに適切な値がないとエラーになります)。たとえば、Mavenはこの "リソースフィルタリング"を呼び出します。ビルドサーバーの各環境に対して "フィルタ"(プレースホルダを実際の値にマップするファイル)を保存し、開発者はローカルビルド用に独自のフィルタを維持できます。

(あなたがこの種の機能を持っているビルド・ツールを使用しない場合、あなたはだけビルドサーバー上で利用可能web.configのコピーを保つことができるが、それはエラーが発生しやすいweb.configが変化しなければならないときです。)

+0

CIを使用すると、古いWeb.configを常に新しいバージョンに置き換えるサーバーにファイルを公開する際に問題は発生しません(ただし、重要な情報はありません)。 – KELF

1

接続文字列を新しいファイルに移動して無視できますか? config sourceを使ってそのファイルを参照できますか?

は、ここで概説:http://johnatten.com/2014/04/06/asp-net-mvc-keep-private-settings-out-of-source-control/

これはちょうど道のあなたの詐欺の文字列を取得し、完全にタクトであなたのweb.configファイルを保持します。

+0

これを試してみてください、ありがとうございます。 – KELF

0

あなたは単にあなたがシステムをファイルにそれを公開することができた後のconfigソース

を使用してそのファイルを参照して新しい設定ファイルに接続文字列を移動できる - > [Visual Studioツールに行く - >開く開発者のコ​​マンドプロンプト管理者モードで - > は、コマンドに ます。aspnet_regiis -pef「のconnectionStrings」「あなたのあなたはあなたがこのことから暗号化された設定ファイルを取得しますあなたのコード」-prov「DataProtectionConfigurationProvider」

を公開しているパスを与えます。 実行時に読み取ることができます。このコマンドを使用することができます復号化のための

ます。aspnet_regiisの-pdf「のconnectionStrings」「あなたのあなたは、外部の構成ファイルに接続文字列の詳細を移動していることを達成することができます」

関連する問題