MachineKeySection クラス
アセンブリ: System.Web (system.web.dll 内)


MachineKeySection クラスを使用すると、構成ファイル内の MachineKey セクションの内容にプログラムからアクセスして変更できます。MachineKey セクションは、マシン レベル (Machine.config) またはアプリケーション レベル (Web.config) で構成でき、Windows フォーム認証、ビューステート検証、およびセッション状態のアプリケーション分離に使用されるキーとアルゴリズムを制御します。これらの機能を Web サーバーのネットワーク (Web ファーム) 間で使用するには、1 つの有効なキー値を各 MachineKey 属性に対して明示的に構成する必要があります。"AutoGenerate"値は Web ファームでは機能しません。この値は、マシン ローカル保護を使用して保持され、コンピュータごとに異なる暗号化によるランダム シークレットに依存するためです。
実装時の注意 Web ファームに対応する場合など、この構成セクションにキーを指定する必要がある場合には、プロテクト構成を使用して、このセクションを暗号化することをお勧めします。
この例では、machineKey 要素 (ASP.NET 設定スキーマ) セクションの複数の属性に対して、宣言によって値を指定する方法を示しています。これらの属性には、MachineKeySection クラスのメンバとしてもアクセスできます。
次の構成ファイルの例では、machineKey 要素 (ASP.NET 設定スキーマ) セクションに対して、宣言によって値を指定する方法を示しています。
<system.web> <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1"/> </system.web>
MachineKeySection クラスを使用する方法を次のコード例に示します。
Imports System Imports System.Collections.Generic Imports System.Text Imports System.Configuration Imports System.Web Imports System.Web.Configuration Namespace Samples.Aspnet.SystemWebConfiguration Class UsingMachineKeySection Public Shared Sub Main() Try ' Set the path of the config file. Dim configPath As String = "" ' Get the Web application configuration object. Dim config As System.Configuration.Configuration = _ System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath) ' Get the section related object. Dim configSection As System.Web.Configuration.MachineKeySection = _ CType(config.GetSection("system.web/machineKey"), _ System.Web.Configuration.MachineKeySection) ' Display title and info. Console.WriteLine("ASP.NET Configuration Info") Console.WriteLine() ' Display Config details. Console.WriteLine("File Path: {0}", config.FilePath) Console.WriteLine("Section Path: {0}", configSection.SectionInformation.Name) ' Display ValidationKey property. Console.WriteLine("ValidationKey: {0}", _ configSection.ValidationKey) ' Set ValidationKey property. configSection.ValidationKey = "AutoGenerate,IsolateApps" ' Display DecryptionKey property. Console.WriteLine("DecryptionKey: {0}", configSection.DecryptionKey) ' Set DecryptionKey property. configSection.DecryptionKey = "AutoGenerate,IsolateApps" ' Display Validation value. Console.WriteLine("Validation: {0}", configSection.Validation) ' Set Validation value. configSection.Validation = MachineKeyValidation.SHA1 ' Update if not locked. If Not configSection.SectionInformation.IsLocked Then config.Save() Console.WriteLine("** Configuration updated.") Else Console.WriteLine("** Could not update, section is locked.") End If Catch e As Exception ' Unknown error. Console.WriteLine(e.ToString()) End Try ' Display and wait Console.ReadLine() End Sub End Class End Namespace
#region Using directives using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Web; using System.Web.Configuration; #endregion namespace Samples.Aspnet.SystemWebConfiguration { class UsingMachineKeySection { static void Main(string[] args) { try { // Set the path of the config file. string configPath = ""; // Get the Web application configuration object. Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath); // Get the section related object. MachineKeySection configSection = (MachineKeySection)config.GetSection("system.web/machineKey"); // Display title and info. Console.WriteLine("ASP.NET Configuration Info"); Console.WriteLine(); // Display Config details. Console.WriteLine("File Path: {0}", config.FilePath); Console.WriteLine("Section Path: {0}", configSection.SectionInformation.Name); // Display ValidationKey property. Console.WriteLine("ValidationKey: {0}", configSection.ValidationKey); // Set ValidationKey property. configSection.ValidationKey = "AutoGenerate,IsolateApps"; // Display DecryptionKey property. Console.WriteLine("DecryptionKey: {0}", configSection.DecryptionKey); // Set DecryptionKey property. configSection.DecryptionKey = "AutoGenerate,IsolateApps"; // Display Validation property. Console.WriteLine("Validation: {0}", configSection.Validation); // Set Validation property. configSection.Validation = MachineKeyValidation.SHA1; // Update if not locked. if (!configSection.SectionInformation.IsLocked) { config.Save(); Console.WriteLine("** Configuration updated."); } else { Console.WriteLine("** Could not update, section is locked."); } } catch (Exception e) { // Unknown error. Console.WriteLine(e.ToString()); } // Display and wait Console.ReadLine(); } } }

System.Configuration.ConfigurationElement
System.Configuration.ConfigurationSection
System.Web.Configuration.MachineKeySection


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- MachineKeySection クラスのページへのリンク