Obtiene o establece un valor que indica si la clave debe conservarse en el almacén de claves del equipo en lugar del almacén de perfiles de usuario.
Espacio de nombres: System.Security.Cryptography
Ensamblado: mscorlib (en mscorlib.dll)

Sintaxis
Visual Basic (Declaración)
Public Shared Property UseMachineKeyStore As Boolean
Dim value As Boolean
value = RSACryptoServiceProvider.UseMachineKeyStore
RSACryptoServiceProvider.UseMachineKeyStore = value
public static bool UseMachineKeyStore { get; set; }
public:
static property bool UseMachineKeyStore {
bool get ();
void set (bool value);
}
/** @property */
public static boolean get_UseMachineKeyStore ()
/** @property */
public static void set_UseMachineKeyStore (boolean value)
public static function get UseMachineKeyStore () : boolean
public static function set UseMachineKeyStore (value : boolean)
Valor de propiedad
Es
true si la clave debe conservarse en el almacén de claves del equipo; en caso contrario, es
false.

Comentarios
Establecer esta propiedad en true equivale a pasar el indicador UseMachineKeyStore a un objeto CspParameters. La propiedad UseMachineKeyStore se aplica a todo el código del actual dominio de aplicación, mientras que el objeto CspParameters se aplica únicamente a las clases que hacen referencia explícita a dicho objeto. Estos valores resultan útiles al suplantar o ejecutar en una cuenta cuyo perfil de usuario no está cargado.

Ejemplo
En el ejemplo de código siguiente se crea un objeto RSACryptoServiceProvider y se establece la propiedad UseMachineKeyStore estática para utilizar el almacén de claves del equipo en lugar del almacén de claves de perfil de usuario.
Imports System.Security.Cryptography
Module RSACSPExample
Sub Main()
Dim KeyContainerName As String = "MyKeyContainer"
'Set the static UseMachineKeyStore property to
'use the machine key store instead of the user
'profile key store. All code in the current
'application domain will use this setting.
RSACryptoServiceProvider.UseMachineKeyStore = True
'Create a new key and persist it in
'the key container.
RSAPersistKeyInCSP(KeyContainerName)
'Delete the key from the key container.
RSADeleteKeyInCSP(KeyContainerName)
End Sub
Sub RSAPersistKeyInCSP(ByVal ContainerName As String)
Try
' Create a new instance of CspParameters. Pass
' 13 to specify a RSA container or 1 to specify
' an RSA container. The default is 1.
Dim cspParams As New CspParameters
' Specify the container name using the passed variable.
cspParams.KeyContainerName = ContainerName
'Create a new instance of RSACryptoServiceProvider to generate
'a new key pair. Pass the CspParameters class to persist the
'key in the container. The PersistKeyInCsp property is True by
'default, allowing the key to be persisted.
Dim RSAalg As New RSACryptoServiceProvider(cspParams)
'Indicate that the key was persisted.
Console.WriteLine("The RSA key was persisted in the container, ""{0}"".", ContainerName)
Catch e As CryptographicException
Console.WriteLine(e.Message)
End Try
End Sub
Sub RSADeleteKeyInCSP(ByVal ContainerName As String)
Try
' Create a new instance of CspParameters. Pass
' 13 to specify a RSA container or 1 to specify
' an RSA container. The default is 1.
Dim cspParams As New CspParameters
' Specify the container name using the passed variable.
cspParams.KeyContainerName = ContainerName
'Create a new instance of RSACryptoServiceProvider.
'Pass the CspParameters class to use the
'key in the container.
Dim RSAalg As New RSACryptoServiceProvider(cspParams)
'Explicitly set the PersistKeyInCsp property to False
'to delete the key entry in the container.
RSAalg.PersistKeyInCsp = False
'Call Clear to release resources and delete the key from the container.
RSAalg.Clear()
'Indicate that the key was persisted.
Console.WriteLine("The RSA key was deleted from the container, ""{0}"".", ContainerName)
Catch e As CryptographicException
Console.WriteLine(e.Message)
End Try
End Sub
End Module
using System;
using System.Security.Cryptography;
class RSACSPSample
{
static void Main()
{
string KeyContainerName = "MyKeyContainer";
//Set the static UseMachineKeyStore property to
//use the machine key store instead of the user
//profile key store. All code in the current
//application domain will use this setting.
RSACryptoServiceProvider.UseMachineKeyStore = true;
//Create a new key and persist it in
//the key container.
RSAPersistKeyInCSP(KeyContainerName);
//Delete the key from the key container.
RSADeleteKeyInCSP(KeyContainerName);
}
public static void RSAPersistKeyInCSP(string ContainerName)
{
try
{
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters cspParams = new CspParameters();
// Specify the container name using the passed variable.
cspParams.KeyContainerName = ContainerName;
//Create a new instance of RSACryptoServiceProvider to generate
//a new key pair. Pass the CspParameters class to persist the
//key in the container. The PersistKeyInCsp property is true by
//default, allowing the key to be persisted.
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(cspParams);
//Indicate that the key was persisted.
Console.WriteLine("The RSA key was persisted in the container, \"{0}\".", ContainerName);
}
catch(CryptographicException e)
{
Console.WriteLine(e.Message);
}
}
public static void RSADeleteKeyInCSP(string ContainerName)
{
try
{
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters cspParams = new CspParameters();
// Specify the container name using the passed variable.
cspParams.KeyContainerName = ContainerName;
//Create a new instance of RSACryptoServiceProvider.
//Pass the CspParameters class to use the
//key in the container.
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(cspParams);
//Explicitly set the PersistKeyInCsp property to false
//to delete the key entry in the container.
RSAalg.PersistKeyInCsp = false;
//Call Clear to release resources and delete the key from the container.
RSAalg.Clear();
//Indicate that the key was persisted.
Console.WriteLine("The RSA key was deleted from the container, \"{0}\".", ContainerName);
}
catch(CryptographicException e)
{
Console.WriteLine(e.Message);
}
}
}
using namespace System;
using namespace System::Security::Cryptography;
void RSAPersistKeyInCSP( String^ ContainerName )
{
try
{
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters^ cspParams = gcnew CspParameters;
// Specify the container name using the passed variable.
cspParams->KeyContainerName = ContainerName;
//Create a new instance of RSACryptoServiceProvider to generate
//a new key pair. Pass the CspParameters class to persist the
//key in the container. The PersistKeyInCsp property is true by
//default, allowing the key to be persisted.
RSACryptoServiceProvider^ RSAalg = gcnew RSACryptoServiceProvider( cspParams );
//Indicate that the key was persisted.
Console::WriteLine( "The RSA key was persisted in the container, \"{0}\".", ContainerName );
}
catch ( CryptographicException^ e )
{
Console::WriteLine( e->Message );
}
}
void RSADeleteKeyInCSP( String^ ContainerName )
{
try
{
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters^ cspParams = gcnew CspParameters;
// Specify the container name using the passed variable.
cspParams->KeyContainerName = ContainerName;
//Create a new instance of RSACryptoServiceProvider.
//Pass the CspParameters class to use the
//key in the container.
RSACryptoServiceProvider^ RSAalg = gcnew RSACryptoServiceProvider( cspParams );
//Explicitly set the PersistKeyInCsp property to false
//to delete the key entry in the container.
RSAalg->PersistKeyInCsp = false;
//Call Clear to release resources and delete the key from the container.
RSAalg->Clear();
//Indicate that the key was persisted.
Console::WriteLine( "The RSA key was deleted from the container, \"{0}\".", ContainerName );
}
catch ( CryptographicException^ e )
{
Console::WriteLine( e->Message );
}
}
int main()
{
String^ KeyContainerName = "MyKeyContainer";
//Set the static UseMachineKeyStore property to
//use the machine key store instead of the user
//profile key store. All code in the current
//application domain will use this setting.
RSACryptoServiceProvider::UseMachineKeyStore = true;
//Create a new key and persist it in
//the key container.
RSAPersistKeyInCSP( KeyContainerName );
//Delete the key from the key container.
RSADeleteKeyInCSP( KeyContainerName );
}
import System.*;
import System.Security.Cryptography.*;
class RSACSPSample
{
public static void main(String args[])
{
String keyContainerName = "MyKeyContainer";
//Set the static UseMachineKeyStore property to
//use the machine key store instead of the user
//profile key store. All code in the current
//application domain will use this setting.
RSACryptoServiceProvider.set_UseMachineKeyStore(true);
//Create a new key and persist it in
//the key container.
RSAPersistKeyInCSP(keyContainerName);
//Delete the key from the key container.
RSADeleteKeyInCSP(keyContainerName);
} //main
public static void RSAPersistKeyInCSP(String containerName)
{
try {
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters cspParams = new CspParameters();
// Specify the container name using the passed variable.
cspParams.KeyContainerName = containerName;
//Create a new instance of RSACryptoServiceProvider to generate
//a new key pair. Pass the CspParameters class to persist the
//key in the container. The PersistKeyInCsp property is true by
//default, allowing the key to be persisted.
RSACryptoServiceProvider rsaAlg = new RSACryptoServiceProvider(
cspParams);
//Indicate that the key was persisted.
Console.WriteLine("The RSA key was persisted in the container, "
+ "\"{0}\".", containerName);
}
catch (CryptographicException e) {
Console.WriteLine(e.get_Message());
}
} //RSAPersistKeyInCSP
public static void RSADeleteKeyInCSP(String containerName)
{
try {
// Create a new instance of CspParameters. Pass
// 13 to specify a RSA container or 1 to specify
// an RSA container. The default is 1.
CspParameters cspParams = new CspParameters();
// Specify the container name using the passed variable.
cspParams.KeyContainerName = containerName;
//Create a new instance of RSACryptoServiceProvider.
//Pass the CspParameters class to use the
//key in the container.
RSACryptoServiceProvider rsaAlg =
new RSACryptoServiceProvider(cspParams);
//Explicitly set the PersistKeyInCsp property to false
//to delete the key entry in the container.
rsaAlg.set_PersistKeyInCsp(false);
//Call Clear to release resources and delete the key from the
// container.
rsaAlg.Clear();
//Indicate that the key was persisted.
Console.WriteLine("The RSA key was deleted from the container, "
+ "\"{0}\".", containerName);
}
catch (CryptographicException e) {
Console.WriteLine(e.get_Message());
}
} //RSADeleteKeyInCSP
} //RSACSPSample

Plataformas
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

Información de versión
.NET Framework
Compatible con: 2.0, 1.1
.NET Compact Framework
Compatible con: 2.0

Vea también