X509Certificate2.Import Metodo

Definizione

Popola un X509Certificate2 oggetto con le informazioni sul certificato fornite.

Overload

Nome Descrizione
Import(Byte[])

Popola un X509Certificate2 oggetto con i dati di una matrice di byte.

Import(String)

Popola un X509Certificate2 oggetto con informazioni da un file di certificato.

Import(Byte[], SecureString, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto usando i dati di una matrice di byte, una password e un flag di archiviazione delle chiavi.

Import(Byte[], String, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto usando i dati di una matrice di byte, una password e i flag per determinare come importare la chiave privata.

Import(String, SecureString, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto con informazioni provenienti da un file di certificato, una password e un flag di archiviazione delle chiavi.

Import(String, String, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto con informazioni da un file di certificato, una password e un X509KeyStorageFlags valore.

Import(Byte[])

Popola un X509Certificate2 oggetto con i dati di una matrice di byte.

public:
 override void Import(cli::array <System::Byte> ^ rawData);
public override void Import(byte[] rawData);
override this.Import : byte[] -> unit
Public Overrides Sub Import (rawData As Byte())

Parametri

rawData
Byte[]

Matrice di byte contenente dati da un certificato X.509.

Commenti

Questo metodo può essere usato per accettare una matrice di byte non elaborata di un certificato X.509 e popolare l'oggetto X509Certificate2 con i relativi valori associati.

Poiché questo metodo accetta solo una matrice di byte, può essere usato solo per i tipi di certificato che non richiedono una password, inclusi un certificato X.509 con codifica PEM o DER o un certificato PFX/PKCS12. Si noti che un certificato PFX/PKCS12 può contenere più certificati. In tal caso, viene usato il primo certificato associato a una chiave privata o, se non viene trovata alcuna chiave privata, viene usato il primo certificato.

Si applica a

Import(String)

Popola un X509Certificate2 oggetto con informazioni da un file di certificato.

public:
 override void Import(System::String ^ fileName);
public override void Import(string fileName);
override this.Import : string -> unit
Public Overrides Sub Import (fileName As String)

Parametri

fileName
String

Nome di un certificato.

Commenti

Questo metodo usa un file di certificato, ad esempio un file con estensione .cer, che rappresenta un certificato X.509 e popola l'oggetto X509Certificate2 con il certificato contenuto nel file.

Questo metodo può essere usato con diversi tipi di certificato, tra cui certificati X.509 con codifica PEM o CON codifica DER, certificati PFX/PKCS12 e certificati firmatari, ad esempio Authenticode. Si noti che un certificato PFX/PKCS12 può contenere più certificati. In tal caso, viene usato il primo certificato associato a una chiave privata o, se non viene trovata alcuna chiave privata, viene usato il primo certificato.

Si applica a

Import(Byte[], SecureString, X509KeyStorageFlags)

Importante

Questa API non è conforme a CLS.

Popola un X509Certificate2 oggetto usando i dati di una matrice di byte, una password e un flag di archiviazione delle chiavi.

public:
 override void Import(cli::array <System::Byte> ^ rawData, System::Security::SecureString ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public override void Import(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public override void Import(byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
override this.Import : byte[] * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
[<System.CLSCompliant(false)>]
override this.Import : byte[] * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
Public Overrides Sub Import (rawData As Byte(), password As SecureString, keyStorageFlags As X509KeyStorageFlags)

Parametri

rawData
Byte[]

Matrice di byte che contiene i dati di un certificato X.509.

password
SecureString

Password necessaria per accedere ai dati del certificato X.509.

keyStorageFlags
X509KeyStorageFlags

Combinazione bit per bit dei valori di enumerazione che controllano dove e come importare il certificato.

Attributi

Commenti

È possibile usare questo metodo per i tipi di certificato, ad esempio certificati X.509 con codifica PEM o con codifica DER, o certificati PFX/PKCS12. Si noti che un certificato PFX/PKCS12 può contenere più certificati. In tal caso, viene usato il primo certificato associato a una chiave privata o, se non viene trovata alcuna chiave privata, viene usato il primo certificato.

Important

Non impostare mai come hardcoded una password all'interno del codice sorgente. Le password hardcoded possono essere recuperate da un assembly usando il Ildasm.exe (Disassembler IL), un editor esadecimale o semplicemente aprendo l'assembly in un editor di testo, ad esempio Notepad.exe.

Si applica a

Import(Byte[], String, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto usando i dati di una matrice di byte, una password e i flag per determinare come importare la chiave privata.

public:
 override void Import(cli::array <System::Byte> ^ rawData, System::String ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public override void Import(byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
override this.Import : byte[] * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
Public Overrides Sub Import (rawData As Byte(), password As String, keyStorageFlags As X509KeyStorageFlags)

Parametri

rawData
Byte[]

Matrice di byte contenente dati da un certificato X.509.

password
String

Password necessaria per accedere ai dati del certificato X.509.

keyStorageFlags
X509KeyStorageFlags

Combinazione bit per bit dei valori di enumerazione che controllano dove e come importare il certificato.

Esempio

Nell'esempio di codice seguente viene creato un eseguibile della riga di comando che accetta un file di certificato come argomento e stampa varie proprietà del certificato nella console.

using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class CertInfo
{
    //Reads a file.
    internal static byte[] ReadFile (string fileName)
    {
        FileStream f = new FileStream(fileName, FileMode.Open, FileAccess.Read);
        int size = (int)f.Length;
        byte[] data = new byte[size];
        size = f.Read(data, 0, size);
        f.Close();
        return data;
    }
    //Main method begins here.
    static void Main(string[] args)
    {
        //Test for correct number of arguments.
        if (args.Length < 1)
        {
            Console.WriteLine("Usage: CertInfo <filename>");
            return;
        }
        try
        {
            byte[] rawData = ReadFile(args[0]);
            //Create X509Certificate2 object from .cer file.
            X509Certificate2 x509 = new X509Certificate2(rawData);

            //Print to console information contained in the certificate.
            Console.WriteLine("{0}Subject: {1}{0}", Environment.NewLine, x509.Subject);
            Console.WriteLine("{0}Issuer: {1}{0}", Environment.NewLine, x509.Issuer);
            Console.WriteLine("{0}Version: {1}{0}", Environment.NewLine, x509.Version);
            Console.WriteLine("{0}Valid Date: {1}{0}", Environment.NewLine, x509.NotBefore);
            Console.WriteLine("{0}Expiry Date: {1}{0}", Environment.NewLine, x509.NotAfter);
            Console.WriteLine("{0}Thumbprint: {1}{0}", Environment.NewLine, x509.Thumbprint);
            Console.WriteLine("{0}Serial Number: {1}{0}", Environment.NewLine, x509.SerialNumber);
            Console.WriteLine("{0}Friendly Name: {1}{0}", Environment.NewLine, x509.PublicKey.Oid.FriendlyName);
            Console.WriteLine("{0}Public Key Format: {1}{0}", Environment.NewLine, x509.PublicKey.EncodedKeyValue.Format(true));
            Console.WriteLine("{0}Raw Data Length: {1}{0}", Environment.NewLine, x509.RawData.Length);
            Console.WriteLine("{0}Certificate to string: {1}{0}", Environment.NewLine, x509.ToString(true));
            Console.WriteLine("{0}Certificate to XML String: {1}{0}", Environment.NewLine, x509.PublicKey.Key.ToXmlString(false));

            //Add the certificate to a X509Store.
            X509Store store = new X509Store();
            store.Open(OpenFlags.MaxAllowed);
            store.Add(x509);
            store.Close();
        }
        catch (DirectoryNotFoundException)
        {
               Console.WriteLine("Error: The directory specified could not be found.");
        }
        catch (IOException)
        {
            Console.WriteLine("Error: A file in the directory could not be accessed.");
        }
        catch (NullReferenceException)
        {
            Console.WriteLine("File must be a .cer file. Program does not have access to that type of file.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates

Class CertInfo

    'Reads a file.
    Friend Shared Function ReadFile(ByVal fileName As String) As Byte()
        Dim f As New FileStream(fileName, FileMode.Open, FileAccess.Read)
        Dim size As Integer = Fix(f.Length)
        Dim data(size - 1) As Byte
        size = f.Read(data, 0, size)
        f.Close()
        Return data

    End Function 

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main(ByVal args() As String)
        'Test for correct number of arguments.
        If args.Length < 1 Then
            Console.WriteLine("Usage: CertInfo <filename>")
            Return
        End If
        Try
            Dim x509 As New X509Certificate2()
            'Create X509Certificate2 object from .cer file.
            Dim rawData As Byte() = ReadFile(args(0))
            
            x509.Import(rawData)

            'Print to console information contained in the certificate.
            Console.WriteLine("{0}Subject: {1}{0}", Environment.NewLine, x509.Subject)
            Console.WriteLine("{0}Issuer: {1}{0}", Environment.NewLine, x509.Issuer)
            Console.WriteLine("{0}Version: {1}{0}", Environment.NewLine, x509.Version)
            Console.WriteLine("{0}Valid Date: {1}{0}", Environment.NewLine, x509.NotBefore)
            Console.WriteLine("{0}Expiry Date: {1}{0}", Environment.NewLine, x509.NotAfter)
            Console.WriteLine("{0}Thumbprint: {1}{0}", Environment.NewLine, x509.Thumbprint)
            Console.WriteLine("{0}Serial Number: {1}{0}", Environment.NewLine, x509.SerialNumber)
            Console.WriteLine("{0}Friendly Name: {1}{0}", Environment.NewLine, x509.PublicKey.Oid.FriendlyName)
            Console.WriteLine("{0}Public Key Format: {1}{0}", Environment.NewLine, x509.PublicKey.EncodedKeyValue.Format(True))
            Console.WriteLine("{0}Raw Data Length: {1}{0}", Environment.NewLine, x509.RawData.Length)
            Console.WriteLine("{0}Certificate to string: {1}{0}", Environment.NewLine, x509.ToString(True))

            Console.WriteLine("{0}Certificate to XML String: {1}{0}", Environment.NewLine, x509.PublicKey.Key.ToXmlString(False))

            'Add the certificate to a X509Store.
            Dim store As New X509Store()
            store.Open(OpenFlags.MaxAllowed)
            store.Add(x509)
            store.Close()

        Catch dnfExcept As DirectoryNotFoundException
            Console.WriteLine("Error: The directory specified could not be found.")
        Catch ioExpcept As IOException
            Console.WriteLine("Error: A file in the directory could not be accessed.")
        Catch nrExcept As NullReferenceException
            Console.WriteLine("File must be a .cer file. Program does not have access to that type of file.")
        End Try

    End Sub
End Class

Commenti

Questo metodo può essere usato per popolare un X509Certificate2 oggetto usando una password per il certificato rappresentato dalla matrice di byte. Il X509KeyStorageFlags valore può essere usato per controllare dove e come importare la chiave privata.

Questo metodo accetta una matrice di byte e può essere usato per i tipi di certificato, ad esempio certificati X.509 con codifica PEM o con codifica DER o certificati PFX/PKCS12. Si noti che un certificato PFX/PKCS12 può contenere più certificati. In tal caso, viene usato il primo certificato associato a una chiave privata o, se non viene trovata alcuna chiave privata, viene usato il primo certificato.

Important

Non impostare mai come hardcoded una password all'interno del codice sorgente. Le password hardcoded possono essere recuperate da un assembly usando il Ildasm.exe (Disassembler IL), un editor esadecimale o semplicemente aprendo l'assembly in un editor di testo, ad esempio Notepad.exe.

Si applica a

Import(String, SecureString, X509KeyStorageFlags)

Importante

Questa API non è conforme a CLS.

Popola un X509Certificate2 oggetto con informazioni provenienti da un file di certificato, una password e un flag di archiviazione delle chiavi.

public:
 override void Import(System::String ^ fileName, System::Security::SecureString ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public override void Import(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public override void Import(string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
override this.Import : string * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
[<System.CLSCompliant(false)>]
override this.Import : string * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
Public Overrides Sub Import (fileName As String, password As SecureString, keyStorageFlags As X509KeyStorageFlags)

Parametri

fileName
String

Nome di un file di certificato.

password
SecureString

Password necessaria per accedere ai dati del certificato X.509.

keyStorageFlags
X509KeyStorageFlags

Combinazione bit per bit dei valori di enumerazione che controllano dove e come importare il certificato.

Attributi

Commenti

Nota sulla sicurezza Non impostare mai come hardcoded una password all'interno del codice sorgente. Le password hardcoded possono essere recuperate da un assembly usando il Ildasm.exe (Disassembler IL), un editor esadecimale o semplicemente aprendo l'assembly in un editor di testo, ad esempio Notepad.exe.

Si applica a

Import(String, String, X509KeyStorageFlags)

Popola un X509Certificate2 oggetto con informazioni da un file di certificato, una password e un X509KeyStorageFlags valore.

public:
 override void Import(System::String ^ fileName, System::String ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public override void Import(string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
override this.Import : string * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> unit
Public Overrides Sub Import (fileName As String, password As String, keyStorageFlags As X509KeyStorageFlags)

Parametri

fileName
String

Nome di un file di certificato.

password
String

Password necessaria per accedere ai dati del certificato X.509.

keyStorageFlags
X509KeyStorageFlags

Combinazione bit per bit dei valori di enumerazione che controllano dove e come importare il certificato.

Commenti

Questo metodo può essere usato per popolare un X509Certificate2 oggetto con informazioni provenienti da un file di certificato, una password e un X509KeyStorageFlags valore.

Important

Non impostare mai come hardcoded una password all'interno del codice sorgente. Le password hardcoded possono essere recuperate da un assembly usando il Ildasm.exe (Disassembler IL), un editor esadecimale o semplicemente aprendo l'assembly in un editor di testo, ad esempio Notepad.exe.

Si applica a