2017-01-20 8 views
-2

web.configファイル内にユーザー名とパスワードのキーがあります。プロバイダのweb.config内のこれらのキーにアクセスする必要があります。これを可能にするには、これを達成する最良の方法は何ですか?ないコード内のweb.configファイル内から.NET構成ファイルで変更される可能性のあるデータを複製しないようにするにはどうすればよいですか?

<add key="ActiveDirectoryUser" value="user"/> 
<add key="ActiveDirectoryPass" value="pass"/> 

<membership defaultProvider="ADMembershipProvider"> 
    <providers> 
     <clear /> 
     <add name="ADMembershipProvider" 
      type="System.Web.Security.ActiveDirectoryMembershipProvider" 
      connectionStringName="ADConnectionString" 
      connectionUsername="userfromabove" 
      connectionPassword="passfromabove" 
      attributeMapUsername="sAMAccountName" /> 
    </providers> 
    </membership> 

アクセス:

この

は、私はそれが動作する方法の一例です。

+0

あなたのコードにこれらのキーを取得したいですか? ConfigurationManager.AppSettings ["key_name"]を使用します。 –

+0

ConfigurationManager.AppSettings ["Username"] –

+0

これはプロバイダによって大きく異なります。私が使用しているプロバイダには、このような単純なものに使うことがあるファイルエクスプローラがあります。また、特定の発行関数は、これを達成するために変換メソッドを使用します。 – nurdyguy

答えて

2

設定ファイルを使用するコードは、探しているものを達成するために事前に設定する必要があります。その特定のコードはそうではないので、あなたが望むように正確に動作しません。

より成熟したシステムでは、変更または敏感な構成データを挿入する他のシステムハンドルを処理する方法があります。たとえば、Team Foundation Serverを使用します。後で私たちのリリースプロセスでは、自動化されたタスクは、私たちのリリース管理システムで定義された対応する値と各__Variable__に置き換えられます次に

<add key="ActiveDirectoryUser" value="__ActiveDirectoryUser__"/> 
<add key="ActiveDirectoryPass" value="__ActiveDirectoryPass__"/> 

<membership defaultProvider="ADMembershipProvider"> 
    <providers> 
     <clear /> 
     <add name="ADMembershipProvider" 
      type="System.Web.Security.ActiveDirectoryMembershipProvider" 
      connectionStringName="ADConnectionString" 
      connectionUsername="__ActiveDirectoryUser__" 
      connectionPassword="__ActiveDirectoryPassword__" 
      attributeMapUsername="sAMAccountName" /> 
    </providers> 
    </membership> 

:ビルド時には、私たちは次のようなトークン化web.configファイルを作成するためにconfig transformationsを適用します。

+1

私は本当に誰がこれをdownvoteするのか分からない、なぜならそれは答えであるからです。 2番目に良いのは、構成ファイルで代用を使用することはできません。 – CodeCaster

+1

@コードキャスターこれは復讐のダウンボートだった - 私はちょうど今約12個を持っていた。おそらく彼の答えを削除した紳士から。それは大丈夫、それは逆になると確信しています。 – mason

+0

それはあなたがなぜそうするのかを説明するdownvoting _and_のために得たものです... – CodeCaster