RSACryptoServiceProvider.PersistKeyInCsp 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,表示金鑰是否應該保存在密碼編譯服務提供者 (CSP) 中。
public:
property bool PersistKeyInCsp { bool get(); void set(bool value); };
public bool PersistKeyInCsp { get; set; }
member this.PersistKeyInCsp : bool with get, set
Public Property PersistKeyInCsp As Boolean
屬性值
如果金鑰應保留在 CSP 中,則為 true
;否則為 false
。
範例
下列程式代碼範例會 RSACryptoServiceProvider 建立 物件,並將密鑰保存到金鑰容器。
using namespace System;
using namespace System::Security::Cryptography;
void RSAPersistKeyInCSP( String^ ContainerName )
{
try
{
// Create a new instance of CspParameters. Pass
// 13 to specify a DSA 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 DSA 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";
//Create a new key and persist it in
//the key container.
RSAPersistKeyInCSP( KeyContainerName );
//Delete the key from the key container.
RSADeleteKeyInCSP( KeyContainerName );
}
using System;
using System.Security.Cryptography;
class RSACSPSample
{
static void Main()
{
string KeyContainerName = "MyKeyContainer";
//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 DSA 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 DSA 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);
}
}
}
Imports System.Security.Cryptography
Module RSACSPExample
Sub Main()
Dim KeyContainerName As String = "MyKeyContainer"
'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 DSA 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 DSA 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
備註
使用這個屬性將金鑰保存在金鑰容器中。
當您PersistKeyInCsp在物件的欄位中CspParameters指定索引鍵容器名稱,並使用它透過使用 參數呼叫其中一個建構parameters
函式來初始化RSACryptoServiceProvider物件時,屬性會自動設定true
KeyContainerName為 。
如果物件是以索引鍵容器名稱建立null
,RSACryptoServiceProvider則PersistKeyInCsp此屬性沒有任何作用。