RSACryptoServiceProvider.UseMachineKeyStore Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de sleutel moet worden bewaard in het sleutelarchief van de computer in plaats van het gebruikersprofielarchief.
public:
static property bool UseMachineKeyStore { bool get(); void set(bool value); };
public static bool UseMachineKeyStore { get; set; }
static member UseMachineKeyStore : bool with get, set
Public Shared Property UseMachineKeyStore As Boolean
Waarde van eigenschap
true als de sleutel moet worden bewaard in het sleutelarchief van de computer; anders, false.
Voorbeelden
In het volgende codevoorbeeld wordt een RSACryptoServiceProvider object gemaakt en wordt de statische UseMachineKeyStore eigenschap ingesteld voor het gebruik van het sleutelarchief van de machine in plaats van het sleutelarchief van het gebruikersprofiel.
using System;
using System.Security.Cryptography;
public class RSAKeyStoreSample
{
public static void Main()
{
// Set the static UseMachineKeyStore property to use the machine key
// store instead of the user profile key store. All CSP instances not
// initialized with CspParameters will use this setting.
RSACryptoServiceProvider.UseMachineKeyStore = true;
try
{
// This CSP instance will use the Machine Store as set above and is
// initialized with no parameters.
using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider())
{
ShowContainerInfo(RSAalg.CspKeyContainerInfo);
RSAalg.PersistKeyInCsp = false;
}
CspParameters cspParams = new CspParameters();
cspParams.KeyContainerName = "MyKeyContainer";
// This CSP instance will use the User Store since cspParams are used.
using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(cspParams))
{
ShowContainerInfo(RSAalg.CspKeyContainerInfo);
RSAalg.PersistKeyInCsp = false;
}
cspParams.Flags |= CspProviderFlags.UseMachineKeyStore;
// This CSP instance will use the Machine Store. Although cspParams are used,
// the cspParams.Flags is set to CspProviderFlags.UseMachineKeyStore.
using (RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(cspParams))
{
ShowContainerInfo(RSAalg.CspKeyContainerInfo);
RSAalg.PersistKeyInCsp = false;
}
}
catch (CryptographicException e)
{
Console.WriteLine("Exception: {0}", e.GetType().FullName);
Console.WriteLine(e.Message);
}
}
public static void ShowContainerInfo(CspKeyContainerInfo containerInfo)
{
string keyStore;
Console.WriteLine();
if (containerInfo.MachineKeyStore)
{
keyStore = "Machine Store";
}
else
{
keyStore = "User Store";
}
Console.WriteLine("Key Store: {0}", keyStore);
Console.WriteLine("Key Provider: {0}", containerInfo.ProviderName);
Console.WriteLine("Key Container: \"{0}\"", containerInfo.KeyContainerName);
Console.WriteLine("Generated: {0}", containerInfo.RandomlyGenerated);
Console.WriteLine("Key Nubmer: {0}", containerInfo.KeyNumber);
Console.WriteLine("Removable Key: {0}", containerInfo.Removable);
}
}
Imports System.Security.Cryptography
Public Class RSAKeyStoreSample
Public Shared Sub Main()
' Set the static UseMachineKeyStore property to use the machine key
' store instead of the user profile key store. All CSP instances not
' initialized with CspParameters will use this setting.
RSACryptoServiceProvider.UseMachineKeyStore = True
Try
' This CSP instance will use the Machine Store as set above and is
' initialized with no parameters.
Using RSAalg As New RSACryptoServiceProvider()
ShowContainerInfo(RSAalg.CspKeyContainerInfo)
RSAalg.PersistKeyInCsp = False
End Using
Dim cspParams As New CspParameters()
cspParams.KeyContainerName = "MyKeyContainer"
' This CSP instance will use the User Store since cspParams are used.
Using RSAalg As New RSACryptoServiceProvider(cspParams)
ShowContainerInfo(RSAalg.CspKeyContainerInfo)
RSAalg.PersistKeyInCsp = False
End Using
cspParams.Flags = cspParams.Flags Or CspProviderFlags.UseMachineKeyStore
' This CSP instance will use the Machine Store. Although cspParams are used,
' the cspParams.Flags is set to CspProviderFlags.UseMachineKeyStore.
Using RSAalg As New RSACryptoServiceProvider(cspParams)
ShowContainerInfo(RSAalg.CspKeyContainerInfo)
RSAalg.PersistKeyInCsp = False
End Using
Catch e As CryptographicException
Console.WriteLine("Exception: {0}", e.GetType().FullName)
Console.WriteLine(e.Message)
End Try
End Sub
Public Shared Sub ShowContainerInfo(containerInfo As CspKeyContainerInfo)
Dim keyStore As String
Console.WriteLine()
If containerInfo.MachineKeyStore Then
keyStore = "Machine Store"
Else
keyStore = "User Store"
End If
Console.WriteLine("Key Store: {0}", keyStore)
Console.WriteLine("Key Provider: {0}", containerInfo.ProviderName)
Console.WriteLine("Key Container: ""{0}""", containerInfo.KeyContainerName)
Console.WriteLine("Generated: {0}", containerInfo.RandomlyGenerated)
Console.WriteLine("Key Nubmer: {0}", containerInfo.KeyNumber)
Console.WriteLine("Removable Key: {0}", containerInfo.Removable)
End Sub
End Class
Opmerkingen
Het instellen van deze eigenschap true is gelijk aan het doorgeven van de UseMachineKeyStore vlag aan een CspParameters object. De UseMachineKeyStore eigenschap is van toepassing op alle code in het huidige toepassingsdomein, terwijl het CspParameters object alleen van toepassing is op klassen die er expliciet naar verwijzen. Deze instellingen zijn handig bij het imiteren of uitvoeren onder een account waarvan het gebruikersprofiel niet is geladen. De instelling UseMachineKeyStore is alleen van invloed op de locatie van het sleutelarchief als RSACryptoServiceProvider deze wordt geïnitialiseerd zonder parameters.