This documentation is archived and is not being maintained.

WebConfigurationManager.OpenMachineConfiguration Method (String, String, IntPtr)

Opens the specified machine-configuration file on the specified server as a Configuration object, using the specified security context to allow read or write operations.

Namespace:  System.Web.Configuration
Assembly:  System.Web (in System.Web.dll)

[SecurityPermissionAttribute(SecurityAction.Demand, Unrestricted = true)]
public static Configuration OpenMachineConfiguration(
	string locationSubPath,
	string server,
	IntPtr userToken


Type: System.String
The application path to which the configuration applies.
Type: System.String
The fully qualified name of the server to return the configuration for.
Type: System.IntPtr
An account token to use.


Valid values were not supplied for the server or userToken parameters.


A valid configuration file could not be loaded.

This method is used to access a configuration file using impersonation.


The account token is usually retrieved from an instance of the WindowsIdentity class or through a call to unmanaged code, such as a call to the Win32 API LogonUser. For more information about calls to unmanaged code, see Consuming Unmanaged DLL Functions.

The following example shows how to access configuration information with the OpenMachineConfiguration method.

        // Show how to use OpenMachineConfiguration(string, string).
        // It gets the machine.config file on the specified server,
        // applicabe to the specified reosurce, for the specified user
        // and displays section basic information. 
        static void OpenMachineConfiguration4()
            // Get the current user token.
            IntPtr userToken =

            // Get the machine.config file applicabe to the
            // specified reosurce, on the specified server for the
            // specified user.
            System.Configuration.Configuration config =
                "myServer", userToken);

            // Loop to get the sections. Display basic information.
            Console.WriteLine("Name, Allow Definition");
            int i = 0;
            foreach (ConfigurationSection section in config.Sections)
                    section.SectionInformation.Name + "\t" +
                i += 1;

            Console.WriteLine("[Total number of sections: {0}]", i);

            // Display machine.config path.
            Console.WriteLine("[File path: {0}]", config.FilePath);


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.