MachineKeySection.ValidationKey プロパティ


フォーム認証データとビューステート データの検証に使用されるキー、またはキーが生成されるプロセスを取得または設定します。Gets or sets the key that is used to validate forms authentication and view state data, or the process by which the key is generated.

 property System::String ^ ValidationKey { System::String ^ get(); void set(System::String ^ value); };
[System.Configuration.ConfigurationProperty("validationKey", DefaultValue=Mono.Cecil.CustomAttributeArgument)]
public string ValidationKey { get; set; }
member this.ValidationKey : string with get, set
Public Property ValidationKey As String


キー値、またはキーが生成される方法を示す値。A key value, or a value that indicates how the key is generated. 既定値は "AutoGenerate,IsolateApps" です。The default is "AutoGenerate,IsolateApps".


次の例は、コードを使用ValidationKeyしてプロパティを設定する方法を示しています。The following example shows how to set the ValidationKey property by using code. この例は、 MachineKeySectionクラスに対して提供される大規模な例の一部です。This example is part of a larger example provided for the MachineKeySection class.

// Display ValidationKey property.
Console.WriteLine("ValidationKey: {0}",
' Display ValidationKey property.
Console.WriteLine("ValidationKey: {0}", _


プロパティValidationKeyは、がtrue ASP.NET enableViewStateMACを有効にするためにメッセージ認証コード (MAC) を作成して、ビューステートが改ざんされているかどうかを判断するときに使用されます。The ValidationKey property is used when enableViewStateMAC is true to create a message authentication code (MAC) to enable ASP.NET to determine whether view state has been tampered with. このValidationKeyプロパティは、アプリケーション間でセッション状態変数が分離されるように、アウトプロセスでアプリケーション固有のセッション id を生成するためにも使用されます。The ValidationKey property is also used to generate out-of-process, application-specific session IDs to ensure that session state variables are isolated between applications.

[自動生成] オプションを使用して、ASP.NET がランダムキーを生成し、それをローカルセキュリティ機関に格納するように指定します。Use the "AutoGenerate" option to specify that ASP.NET generates a random key and stores it in the Local Security Authority. [自動生成] オプションは既定値の一部です。The "AutoGenerate" option is part of the default value.

"IsolateApps" 修飾子を "自動生成" ValidationKey値に追加すると、ASP.NET は各アプリケーションのAppDomainAppVirtualPathを使用して、アプリケーションごとに一意の暗号化キーを生成します。If you add the "IsolateApps" modifier to the "AutoGenerate" ValidationKey value, ASP.NET generates a unique encrypted key for each application by using each application's AppDomainAppVirtualPath. これは、既定の設定です。This is the default setting.

"IsolateByAppId" 修飾子を "自動生成" ValidationKey値に追加すると、ASP.NET は各アプリケーションのAppDomainAppIdを使用して、アプリケーションごとに一意の暗号化キーを生成します。If you add the "IsolateByAppId" modifier to the "AutoGenerate" ValidationKey value, ASP.NET generates a unique encrypted key for each application by using each application's AppDomainAppId. 2つの異なるアプリケーションが仮想パスを共有している場合 (これらのアプリケーションが別のポートで実行されている場合など)、このフラグを使用して、それらを相互に区別することができます。If two distinct applications share a virtual path (perhaps because those applications are running on different ports), this flag can be used to further distinguish them from one another. "IsolateByAppId" フラグは ASP.NET 4.5 でのみ認識されますが、設定にMachineKeySection.CompatibilityMode関係なく使用できます。The "IsolateByAppId" flag is understood only by ASP.NET 4.5, but it can be used regardless of the MachineKeySection.CompatibilityMode setting.

Web サーバー (web ファーム) のネットワークでの構成をサポートする必要がある場合は、 ValidationKeyプロパティを手動で設定して、構成が一貫していることを確認します。If you need to support configuration across a network of Web servers (a Web farm), set the ValidationKey property manually to ensure consistent configuration. DecryptionKey属性の値を手動で生成する方法については、「」を参照してください。ASP.NET 2.0で MachineKey を構成します。For information about how to manually generate values for the DecryptionKey attribute, see How To: Configure MachineKey in ASP.NET 2.0.

このプロパティは、通常、web.config ファイルvalidationKeymachineKey要素の属性で宣言によって設定されます。This property is typically set declaratively in the validationKey attribute of the machineKey element of the Web.config file.