2010-12-01 17 views
3

ここで説明するように私は、web.configファイル内の接続文字列を暗号化:
http://blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx
はアズールに公開され、すべてが期待どおりに働いています。

しかし、接続文字列の暗号化を必要としないローカルデータベースに対して私のローカル開発の問題に直面しています。
私の地元の開発はデバッグ構成として構成され、私は(変換)のようなweb.configファイルの暗号化connectionStringsセクション置き換えることを試みた:確保接続のWindows Azureの中の文字列とweb.configファイル

をweb.config.debugするために定期的に非暗号化されたセクションで

<connectionStrings configProtectionProvider="CustomProvider"> 
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" 
... 
</EncryptedData> 

<connectionStrings> 
<add name="ApplicationServices" connectionString="data source=localhost... 
</connectionStrings> 

私はXDTにセクションを追加することは問題がありませんでした:= "挿入を変換しますが、私はweb.configファイルからセクションを削除するために管理していませんでした
それはパーサーエラーメッセージで結果:認識できない要素デバッグモードでWebプロジェクトを実行するときに 'EncryptedData'。

この問題を解決するには、web.config.debugのEncryptedDataセクションを削除する方法がありますか?

+0

デバッグモードで同じユーザー/ PWDを使用したのはなぜ?他のログイン資格情報を持つ別のデータベースでデバッグします。 – Gerard

答えて

0

ちょっと疑問...なぜ接続文字列を保護したいのですか? .cscfgファイルに接続文字列を置くことができ、そのファイルはIIS経由で公開されません。

+3

これはIISでの公開ではなく、cscfgファイルでも接続文字とプレーンパスワードを読み取ることができます。私はセキュリティ上の理由からsql azureのパスワードを隠すのが好きです。なぜなら、ローカル開発のためには、空のパスワードを知る必要はないからです。 – freakdev

+1

暗号化された接続文字列をcscfgに保存することについてオンラインの投稿が見つかりませんが、これもやりたいことです。あなたが何かを見つけたら、返信してください – DaveH

-1

はい、あなたは.csfgファイルにそれらを入れて、(単にDLLを供給し)たconnectionStringを抽出するためのライブラリを作ることができます。

public class MyContext : DbContext 
{ 
    private MyContext(string connString) 
     : base(connString) 
    { 
    } 

    public static MyContext GetMyContext() 
    { 
     string dbConnString = CloudConfigurationManager.GetSetting("MyDbConnectionString"); 

     return new MyContext(decrypt(dbConnString)); 
    } 
} 
関連する問題