MachineKey.Unprotect Method (Byte[], String[])

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Unprotects the specified data, which was protected by the Protect method.

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

public static byte[] Unprotect(
	byte[] protectedData,
	params string[] purposes


Type: System.Byte[]

The ciphertext data to unprotect.

Type: System.String[]

A list of purposes that describe what the data is meant for. This must be the same value that was passed to the Protect method when the data was protected.

Return Value

Type: System.Byte[]

The plaintext data.

Exception Condition

The protectedData parameter is null.


The purposes array contains one or more whitespace-only entries.


Possible causes include the following:

  • The protected data was tampered with.

  • The value of the purposes parameter is not the same as the value that was specified when the data was protected.

  • The application is deployed to more than one server and is using auto-generated encryption keys.

For information about this method, see the Protect method.

.NET Framework
Available since 4.5
Return to top