MachineKeySection Class (System.Web.Configuration) (2024)

  • Reference

Definition

Namespace:
System.Web.Configuration
Assembly:
System.Web.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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.

public ref class MachineKeySection sealed : System::Configuration::ConfigurationSection
public sealed class MachineKeySection : System.Configuration.ConfigurationSection
type MachineKeySection = class inherit ConfigurationSection
Public NotInheritable Class MachineKeySectionInherits ConfigurationSection
Inheritance

ConfigurationElement

ConfigurationSection

MachineKeySection

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.

<system.web> <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1"/> </system.web> 

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.

#region Using directivesusing System;using System.Collections.Generic;using System.Text;using System.Configuration;using System.Web;using System.Web.Configuration;#endregionnamespace 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.HMACSHA256; // 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(); } }}
Imports System.Collections.GenericImports System.TextImports System.ConfigurationImports System.WebImports System.Web.ConfigurationNamespace 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.HMACSHA256 ' 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 ClassEnd Namespace

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

ApplicationName

Gets or sets the name of the application.

CompatibilityMode

Gets or sets a value that specifies whether upgraded encryption methods for view state that were introduced after the .NET Framework version 2.0 Service Pack 1 release are used.

CurrentConfiguration

Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Inherited from ConfigurationElement)
DataProtectorType

Gets or sets the name of the data protector type. The default is Empty.

Decryption

Specifies the encryption algorithm that is used for encrypting and decrypting forms authentication data.

DecryptionKey

Gets or sets the key that is used to encrypt and decrypt data, or the process by which the key is generated.

ElementInformation

Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Inherited from ConfigurationElement)
ElementProperty

Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Inherited from ConfigurationElement)
EvaluationContext

Gets the ContextInformation object for the ConfigurationElement object.

(Inherited from ConfigurationElement)
HasContext

Gets a value that indicates whether the CurrentConfiguration property is null.

(Inherited from ConfigurationElement)
Item[ConfigurationProperty]

Gets or sets a property or attribute of this configuration element.

(Inherited from ConfigurationElement)
Item[String]

Gets or sets a property, attribute, or child element of this configuration element.

(Inherited from ConfigurationElement)
LockAllAttributesExcept

Gets the collection of locked attributes.

(Inherited from ConfigurationElement)
LockAllElementsExcept

Gets the collection of locked elements.

(Inherited from ConfigurationElement)
LockAttributes

Gets the collection of locked attributes.

(Inherited from ConfigurationElement)
LockElements

Gets the collection of locked elements.

(Inherited from ConfigurationElement)
LockItem

Gets or sets a value indicating whether the element is locked.

(Inherited from ConfigurationElement)
Properties

Gets the collection of properties.

(Inherited from ConfigurationElement)
SectionInformation

Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

(Inherited from ConfigurationSection)
Validation

Specifies the hashing algorithm that is used for validating forms authentication and view state data.

ValidationAlgorithm

Gets or sets the name of the algorithm that is used to validate forms authentication and view state data.

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.

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 false when implemented in a derived class.

(Inherited from ConfigurationSection)
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)

Applies to

See also

  • ConfigurationSection
  • Forms Authentication Credentials
MachineKeySection Class (System.Web.Configuration) (2024)

FAQs

MachineKeySection Class (System.Web.Configuration)? ›

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.

What is web config and machine config? ›

config is the file for the local settings to be applied for a website which store configuration data in XML format. The settings of Machine. config file are applied to the whole asp.net applications on your server whereas the settings made in the Web.

How to enable machine key in IIS? ›

Configuring the Machine Key
  1. To set the machine key, go to IIS Manager on the first machine, select the application, and then open the Machine Key feature:
  2. The keys will need to be set in here so uncheck the two "Automatically generate at runtime" checkboxes.

How to do web configuration? ›

In Solution Explorer, right-click your Web site name, and then click Add New Item. In the Templates window, click Web Configuration File. The file name in the Name text box should be Web. config.

What is the difference between web config and app config? ›

App. config file is used to set configuration parameters externally for desktop / stand-alone applications. Web. config file is used to set configuration parameters externally for web applications.

Does machine config override web config? ›

The Web. config file must contain only configuration entries that override the settings in the Machine. config file.

What is the use of machine key in web config? ›

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.

What is MachineKey used for? ›

Machine keys are also used to verify out-of-process session state identification. If you deploy your application in a web farm, make sure that the configuration files on each server in the web farm have the same value for the validation key and decryption keys, which are used for hashing and decryption respectively.

How to get machine key? ›

Displaying the Machine Key for a Standard Machine

Click More Actions > Edit Machine. The Edit Machine: [machine_name] window is displayed. Here you can see the Machine Key,Name, and Description fields for the desired machine.

How do you regenerate machine keys in IIS? ›

How to manually generate your own Machine Key in IIS 7
  • Connect to the web server using IIS 7 Manager.
  • Go to the module “Machine Key”.
  • Click on “Generate Keys” on the left hand side of the IIS 7 Manager.
  • Click “Apply”.​
Dec 16, 2010

What is the purpose of web config? ›

web. config file is an XML-based configuration file used in ASP. NET-based applications to manage various settings that are concerned with the configuration of our website. In this way, we can separate our application logic from configuration logic.

What is system web in web config? ›

Configuration file is nested in a root <configuration> element. Configuration element contains a <system.web> element, which is used for ASP.NET settings. Inside the <system. web> element are separate elements for each aspect of configuration. <appSettings> element can store custom settings.

Where is the web config path? ›

The Web. Config file is used to configure Oracle Web Application functionality. This file is typically installed in the c:\Inetput\wwwroot\WebApp directory.

Where do I put app settings in web config? ›

Locate the web. config file in the root directory of your application (or create one if it does not already exist). Add an <appSettings> element. Add <add> child elements along with key / value pairs to the <appSettings> element as required.

Is it necessary to have web config? ›

config file is required at the root of the app to enable the publishing of multiple apps using Web Deploy. Sensitive files exist on the app's physical path, such as {ASSEMBLY}.

Where is the machine config file? ›

Location of machine. config file

config file is stored in the %WINDIR%\Microsoft.NET\Framework folder in the directory where Microsoft™ Windows™ is installed. By default, it is located in the following path: C:\WINDOWS\Microsoft.NET\Framework\v1.

What is web config used for? ›

The Web. Config file is used to configure Oracle Web Application functionality. This file is typically installed in the c:\Inetput\wwwroot\WebApp directory. This section describes settings in the top-level WebApp Web.

Where is the machine config? ›

Location of machine. config file

The machine. config file is stored in the %WINDIR%\Microsoft.NET\Framework folder in the directory where Microsoft™ Windows™ is installed. By default, it is located in the following path: C:\WINDOWS\Microsoft.NET\Framework\v1.

What is machine configuration file? ›

Overview. A configuration file (config file) is code on your computer that selects various features and settings. It can determine parameters, preferences, and alternative options in the many realms of your IT environment.

Can an application run without web config? ›

Yes we can run Asp.net application without Web. config file.In case you will not define any configuration in web. config file , it will take machine.

Top Articles
A Look At Reddit’s Biggest Shareholders Ahead Of Its IPO
What Is API Access?
The Tribes and Castes of the Central Provinces of India, Volume 3
Thor Majestic 23A Floor Plan
Ret Paladin Phase 2 Bis Wotlk
1970 Chevelle Ss For Sale Craigslist
Rondale Moore Or Gabe Davis
Top Financial Advisors in the U.S.
Mylaheychart Login
Lycoming County Docket Sheets
True Statement About A Crown Dependency Crossword
Weather In Moon Township 10 Days
Amateur Lesbian Spanking
Horned Stone Skull Cozy Grove
LA Times Studios Partners With ABC News on Randall Emmett Doc Amid #Scandoval Controversy
William Spencer Funeral Home Portland Indiana
Call Follower Osrs
Tripadvisor Near Me
454 Cu In Liters
Nwi Arrests Lake County
Payment and Ticket Options | Greyhound
Grab this ice cream maker while it's discounted in Walmart's sale | Digital Trends
Ou Class Nav
2 Corinthians 6 Nlt
Pizza Hut In Dinuba
ARK: Survival Evolved Valguero Map Guide: Resource Locations, Bosses, & Dinos
Georgia Vehicle Registration Fees Calculator
Drago Funeral Home & Cremation Services Obituaries
Google Doodle Baseball 76
Leccion 4 Lesson Test
Ahrefs Koopje
Faurot Field Virtual Seating Chart
Bella Bodhi [Model] - Bio, Height, Body Stats, Family, Career and Net Worth 
Is Light Raid Hard
Nearest Ups Ground Drop Off
Pokemmo Level Caps
Strange World Showtimes Near Regal Edwards West Covina
Tal 3L Zeus Replacement Lid
Msnl Seeds
Dr Mayy Deadrick Paradise Valley
Unlock The Secrets Of "Skip The Game" Greensboro North Carolina
Iman Fashion Clearance
Sacramentocraiglist
Boyfriends Extra Chapter 6
Aznchikz
Marine Forecast Sandy Hook To Manasquan Inlet
A Snowy Day In Oakland Showtimes Near Maya Pittsburg Cinemas
Marion City Wide Garage Sale 2023
Tweedehands camper te koop - camper occasion kopen
Laurel Hubbard’s Olympic dream dies under the world’s gaze
Latest Posts
Article information

Author: Madonna Wisozk

Last Updated:

Views: 5615

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Madonna Wisozk

Birthday: 2001-02-23

Address: 656 Gerhold Summit, Sidneyberg, FL 78179-2512

Phone: +6742282696652

Job: Customer Banking Liaison

Hobby: Flower arranging, Yo-yoing, Tai chi, Rowing, Macrame, Urban exploration, Knife making

Introduction: My name is Madonna Wisozk, I am a attractive, healthy, thoughtful, faithful, open, vivacious, zany person who loves writing and wants to share my knowledge and understanding with you.