次の方法で共有


方法 : Web.config ファイルから接続文字列を読み取る

更新 : 2007 年 11 月

この例では、Web.config ファイルから接続文字列を読み取ります。connectionStrings 要素は、ConnectionStringSettings オブジェクトの ConnectionStringSettingsCollection コレクションです。コレクション要素の処理は、他の構成要素の処理よりもわずかに複雑になる場合があります。

構成設定を更新するには、構成オブジェクトの Save メソッドまたは SaveAs メソッドを使用します。詳細については、「構成クラスの使用」を参照してください。その他のコード例については、ConnectionStringsSection クラスとその関連クラスを参照してください。

この例では、構成データを取得する非静的なメソッドを使用します。これにより、任意のアプリケーションから構成情報を取得できます。コードが存在するアプリケーションから構成情報を取得する場合は、処理のより高速な静的メソッドを使用します。詳細については、「ASP.NET 構成 API の概要」の「ローカルの構成設定およびリモートの構成設定の操作」を参照してください。

ms178411.alert_note(ja-jp,VS.90).gifメモ :

この例は、MyWebSiteRoot という Web サイトに適用されます。サンプルを実行するには、この名前を指定して Web サイトで実行するか、OpenWebConfiguration メソッドに指定した文字列を Web サイト名で置換します。

使用例

Dim rootWebConfig As System.Configuration.Configuration
    rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot")
Dim connString As System.Configuration.ConnectionStringSettings
If (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count) Then
    connString = rootWebConfig.ConnectionStrings.ConnectionStrings("NorthwindConnectionString")
    If Not (Nothing = connString.ConnectionString) Then
        Console.WriteLine("Northwind connection string = {0}", connString.ConnectionString)
    Else
        Console.WriteLine("No Northwind connection string")
    End If
End If
         System.Configuration.Configuration rootWebConfig =
                System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot");
            System.Configuration.ConnectionStringSettings connString;
            if (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count)
            {
                connString =
                    rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"];
                if (null != connString)
                    Console.WriteLine("Northwind connection string = \"{0}\"",
                        connString.ConnectionString);
                else
                    Console.WriteLine("No Northwind connection string");
            }

コードのコンパイル方法

この例で必要な要素は次のとおりです。

  • NorthwindConnectionString という名前の接続を含むルート Web.config ファイル内の connectionStrings 要素。この要素は次のようになります。

    <connectionStrings>
      <add 
        name="NorthwindConnectionString" 
        connectionString="Data Source=serverName;Initial 
        Catalog=Northwind;Persist Security Info=True;User 
        ID=userName;Password=password"
        providerName="System.Data.SqlClient"
      />
    </connectionStrings>
    

    connectionStrings 要素は、<configuration> 要素の直接の子で system.web 要素のピアです。

    ms178411.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

    ユーザー名やパスワードなどの機密情報を構成ファイルに保存する場合、プロテクト構成を使用して機密情報を暗号化する必要があります。詳細については、「方法 : データ ソース コントロールを使用するときに接続文字列をセキュリティ保護する」を参照してください。

堅牢性の高いプログラム

Web.config ファイルに指定した接続文字列が存在しない場合、オブジェクトは返されません。接続文字列を読み取るときは、コードからオブジェクトが返されたことを確認してください。

セキュリティ

Windows のセキュリティ設定によって構成ファイルをサーバー上で保護して、だれがファイルを読み取ることができるかを限定する必要があります。connectionString 要素は、暗号化して保護できます。詳細については、「保護された構成を使用した構成情報の暗号化」を参照してください。

参照

参照

connectionStrings 要素 (ASP.NET 設定スキーマ)

ConfigurationSettings