Web Config Generate Machine Key
Definition
Jan 04, 2017 The machineKey property in web.config file configures algorithms and keys to use for encryption, decryption, and validation of forms-authentication data and view-state data, and for out-of-process session state identification.This encryption prevents tempering of session data on the server. May 13, 2009 IIS 7 Tip # 10 You can generate machine keys from the IIS manager. The machineKey element of the ASP.NET web.config specifies the algorithm and keys that ASP.NET will use for encryption. By default the validationKey and the decryptionKey keys are set to AutoGenerate which means the runtime will generate a random key for use. This tool will generate a valid random machine key used by ASP.NET for encryption, decryption, validation of forms-authentication and view-state data, and other purposes. Select your target version of ASP.NET and click the Generate Keys button. You can then copy the result and paste it into the section of your web.config file. ASP.Net MachineKey Generator. The all-in-one ultimate online toolbox that generates all kind of keys! Every coder needs All Keys Generator in its favorites! It is provided for free and only supported by ads and donations. When you specify the same key in your web.config, the value of machine key specified in the machine.config is overridden by the one you have specified in the web.config file. Further Reading Replace the ASP.NET machineKey in ASP.NET Core - The implementation of the machineKey element in ASP.NET is replaceable.
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.
Examples
The example in this section demonstrates how to specify values declaratively for several attributes of the machineKey section, which can also be accessed as members of the MachineKeySection class.
The following example from a configuration file shows how to specify values declaratively for the machineKey section.
This example uses SHA1. Due to collision problems with SHA1, Microsoft recommends SHA256.
The following example demonstrates how to use the MachineKeySection class in code.
Remarks
The 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.
Notes to Inheritors
If you to specify keys in this configuration section, as is required in Web-farm scenarios, it is recommended that you encrypt this section by using protected configuration.
Constructors
| MachineKeySection() | Initializes a new instance of the MachineKeySection class by using default settings. |
Properties
Methods

| DeserializeElement(XmlReader, Boolean) | Reads XML from the configuration file. (Inherited from ConfigurationElement) |
| DeserializeSection(XmlReader) | Reads XML from the configuration file. (Inherited from ConfigurationSection) |
| Equals(Object) | Compares the current ConfigurationElement instance to the specified object. (Inherited from ConfigurationElement) |
| GetHashCode() | Gets a unique value representing the current ConfigurationElement instance. (Inherited from ConfigurationElement) |
| GetRuntimeObject() | Returns a custom object when overridden in a derived class. (Inherited from ConfigurationSection) |
| GetTransformedAssemblyString(String) | Returns the transformed version of the specified assembly name. (Inherited from ConfigurationElement) |
| GetTransformedTypeString(String) | Returns the transformed version of the specified type name. (Inherited from ConfigurationElement) |
| GetType() | Gets the Type of the current instance. (Inherited from Object) |
| Init() | Sets the ConfigurationElement object to its initial state. (Inherited from ConfigurationElement) |
| InitializeDefault() | Used to initialize a default set of values for the ConfigurationElement object. (Inherited from ConfigurationElement) |
| IsModified() | Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class. (Inherited from ConfigurationSection) |
| IsReadOnly() | Gets a value indicating whether the ConfigurationElement object is read-only. (Inherited from ConfigurationElement) |
| ListErrors(IList) | Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list. (Inherited from ConfigurationElement) |
| MemberwiseClone() | Creates a shallow copy of the current Object. (Inherited from Object) |
| OnDeserializeUnrecognizedAttribute(String, String) | Gets a value indicating whether an unknown attribute is encountered during deserialization. (Inherited from ConfigurationElement) |
| OnDeserializeUnrecognizedElement(String, XmlReader) | Gets a value indicating whether an unknown element is encountered during deserialization. (Inherited from ConfigurationElement) |
| OnRequiredPropertyNotFound(String) | Throws an exception when a required property is not found. (Inherited from ConfigurationElement) |
| PostDeserialize() | Called after deserialization. (Inherited from ConfigurationElement) |
| PreSerialize(XmlWriter) | Called before serialization. (Inherited from ConfigurationElement) |
| Reset(ConfigurationElement) | Resets the internal state of the ConfigurationElement object, including the locks and the properties collections. (Inherited from ConfigurationElement) |
| ResetModified() | Resets the value of the IsModified() method to |
| SerializeElement(XmlWriter, Boolean) | Writes the contents of this configuration element to the configuration file when implemented in a derived class. (Inherited from ConfigurationElement) |
| SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) | Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file. (Inherited from ConfigurationSection) |
| SerializeToXmlElement(XmlWriter, String) | Writes the outer tags of this configuration element to the configuration file when implemented in a derived class. (Inherited from ConfigurationElement) |
| SetPropertyValue(ConfigurationProperty, Object, Boolean) | Sets a property to the specified value. (Inherited from ConfigurationElement) |
| SetReadOnly() | Sets the IsReadOnly() property for the ConfigurationElement object and all subelements. (Inherited from ConfigurationElement) |
| ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) | Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework. (Inherited from ConfigurationSection) |
| ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) | Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework. (Inherited from ConfigurationSection) |
| ShouldSerializeSectionInTargetVersion(FrameworkName) | Indicates whether the current ConfigurationSection instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework. (Inherited from ConfigurationSection) |
| ToString() | Returns a string that represents the current object. (Inherited from Object) |
| Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) | Modifies the ConfigurationElement object to remove all values that should not be saved. (Inherited from ConfigurationElement) |
