<?xml version="1.0" encoding="utf-8"?>
<Type Name="MachineKeySection" FullName="System.Web.Configuration.MachineKeySection">
  <TypeSignature Language="C#" Value="public sealed class MachineKeySection : System.Configuration.ConfigurationSection" />
  <AssemblyInfo>
    <AssemblyName>System.Web</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Configuration.ConfigurationSection</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Web.Configuration.MachineKeySection" /> class provides a way to programmatically access and modify the content of the MachineKey section in the configuration file. The MachineKey section can be configured at the machine (Machine.config) or application (Web.config) level and controls the keys and algorithms that are used for Windows Forms authentication, view-state validation, and session-state application isolation. For any of these features to work across a network of Web servers (a Web farm), the DecryptionKey and ValidationKey attributes of the MachineKey section must be configured explicitly and identically with valid key values. The AutoGenerate value does not work for Web farms, because it relies on a cryptographically random secret, which is persisted using machine-local protection and will not be the same across more than one computer.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Defines the configuration settings that control the key generation and algorithms that are used in encryption, decryption, and message authentication code (MAC) operations in Windows Forms authentication, view-state validation, and session-state application isolation. This class cannot be inherited.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public MachineKeySection ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The constructor is not intended to be used directly from your code. It is called by the ASP.NET configuration system. You obtain an instance of the <see cref="T:System.Web.Configuration.MachineKeySection" /> class by using the <see cref="M:System.Configuration.Configuration.GetSection(System.String)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Web.Configuration.MachineKeySection" /> class by using default settings.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Decryption">
      <MemberSignature Language="C#" Value="public string Decryption { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Configuration.ConfigurationProperty("decryption", DefaultValue="Auto")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Configuration.StringValidator(MinLength=1)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.TypeConverter(typeof(System.Configuration.WhiteSpaceTrimStringConverter))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.Configuration.MachineKeySection.Decryption" /> property supports the following decryption values: </para>
          <list type="bullet">
            <item>
              <para>Auto, which is the default value, specifies that ASP.NET determines which encryption algorithm to use based on configuration default settings. </para>
            </item>
            <item>
              <para>AES, which specifies that ASP.NET uses the <see cref="F:System.Web.Configuration.MachineKeyValidation.AES" /> algorithm to encrypt data. AES is the default algorithm to encrypt data.</para>
            </item>
            <item>
              <para>3DES, which specifies that ASP.NET uses the <see cref="F:System.Web.Configuration.MachineKeyValidation.TripleDES" /> algorithm to encrypt data. </para>
            </item>
            <item>
              <para>A custom algorithm. </para>
            </item>
          </list>
          <para>This property is  typically set declaratively in the decryption attribute of the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element of the Web.config file. For more information, see the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specifies the encryption algorithm that is used for encrypting and decrypting forms authentication data. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="DecryptionKey">
      <MemberSignature Language="C#" Value="public string DecryptionKey { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Configuration.ConfigurationProperty("decryptionKey", DefaultValue="AutoGenerate,IsolateApps")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Configuration.StringValidator(MinLength=1)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.TypeConverter(typeof(System.Configuration.WhiteSpaceTrimStringConverter))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.Configuration.MachineKeySection.DecryptionKey" /> property is used for encryption and decryption, such as in Windows Forms authentication, and for view state when the <see cref="P:System.Web.Configuration.MachineKeySection.Validation" /> property is set to "3DES" or "AES".</para>
          <para>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. </para>
          <para>If you add the "IsolateApps" modifier to the "AutoGenerate" <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> value, ASP.NET generates a unique encrypted key for each application by using each application's <see cref="P:System.Web.HttpRuntime.AppDomainAppVirtualPath" />. This is the default setting.</para>
          <para>If you add the "IsolateByAppId" modifier to the "AutoGenerate" <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> value, ASP.NET generates a unique encrypted key for each application by using each application's <see cref="P:System.Web.HttpRuntime.AppDomainAppId" />. 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. The “IsolateByAppId” flag is understood only by ASP.NET 4.5, but it can be used regardless of the <see cref="P:System.Web.Configuration.MachineKeySection.CompatibilityMode" /> setting.</para>
          <para>If you need to support configuration across a network of Web servers (a Web farm), set the <see cref="P:System.Web.Configuration.MachineKeySection.DecryptionKey" /> property manually to ensure consistent configuration. For information about how to manually generate values for the DecryptionKey attribute, see <see cref="http://go.microsoft.com/fwlink/?linkid=155113">How To: Configure MachineKey in ASP.NET 2.0</see>.</para>
          <para>This property is  typically set declaratively in the DecryptionKey attribute of the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element of the Web.config file. For more information, see the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the key that is used to encrypt and decrypt data, or the process by which the key is generated. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Properties">
      <MemberSignature Language="C#" Value="protected override System.Configuration.ConfigurationPropertyCollection Properties { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Configuration.ConfigurationPropertyCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Reset">
      <MemberSignature Language="C#" Value="protected override void Reset (System.Configuration.ConfigurationElement parentElement);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parentElement" Type="System.Configuration.ConfigurationElement" />
      </Parameters>
      <Docs>
        <param name="parentElement">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Validation">
      <MemberSignature Language="C#" Value="public System.Web.Configuration.MachineKeyValidation Validation { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Configuration.ConfigurationProperty("validation", DefaultValue="SHA1")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.TypeConverter(typeof(System.Web.Configuration.MachineKeyValidationConverter))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Web.Configuration.MachineKeyValidation</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.Configuration.MachineKeySection.Validation" /> property supports encryption algorithms that are defined by the <see cref="T:System.Web.Configuration.MachineKeyValidation" /> enumeration. This property is typically set declaratively in the decryption attribute of the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element of the Web.config file. For more information, see the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specifies the hashing algorithm that is used for validating forms authentication and view state data. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ValidationKey">
      <MemberSignature Language="C#" Value="public string ValidationKey { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Configuration.ConfigurationProperty("validationKey", DefaultValue="AutoGenerate,IsolateApps")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Configuration.StringValidator(MinLength=1)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.TypeConverter(typeof(System.Configuration.WhiteSpaceTrimStringConverter))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.Configuration.MachineKeySection.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. The <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> property is also used to generate out-of-process, application-specific session IDs to ensure that session state variables are isolated between applications.</para>
          <para>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. </para>
          <para>If you add the "IsolateApps" modifier to the "AutoGenerate" <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> value, ASP.NET generates a unique encrypted key for each application by using each application's <see cref="P:System.Web.HttpRuntime.AppDomainAppVirtualPath" />. This is the default setting.</para>
          <para>If you add the "IsolateByAppId" modifier to the "AutoGenerate" <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> value, ASP.NET generates a unique encrypted key for each application by using each application's <see cref="P:System.Web.HttpRuntime.AppDomainAppId" />. 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. The “IsolateByAppId” flag is understood only by ASP.NET 4.5, but it can be used regardless of the <see cref="P:System.Web.Configuration.MachineKeySection.CompatibilityMode" /> setting.</para>
          <para>If you need to support configuration across a network of Web servers (a Web farm), set the <see cref="P:System.Web.Configuration.MachineKeySection.ValidationKey" /> property manually to ensure consistent configuration. For information about how to manually generate values for the DecryptionKey attribute, see <see cref="http://go.microsoft.com/fwlink/?linkid=155113">How To: Configure MachineKey in ASP.NET 2.0</see>.</para>
          <para>This property is typically set declaratively in the validationKey attribute of the <format type="text/html"><a href="4b5699a9-bc21-4c4a-85f1-8b3b8ebd2d46">machineKey</a></format> element of the Web.config file.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>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. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
  </Members>
</Type>