Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

X509Certificate2, classe

Représente un certificat X.509.

System.Object
  System.Security.Cryptography.X509Certificates.X509Certificate
    System.Security.Cryptography.X509Certificates.X509Certificate2

Espace de noms :  System.Security.Cryptography.X509Certificates
Assembly :  System (dans System.dll)
[SerializableAttribute]
public class X509Certificate2 : X509Certificate

Le type X509Certificate2 expose les membres suivants.

  Nom Description
Méthode publique X509Certificate2() Initialise une nouvelle instance de la classe X509Certificate2.
Méthode publique X509Certificate2(Byte[]) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide des informations d'un tableau d'octets.
Méthode publique X509Certificate2(IntPtr) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide d'un handle non managé.
Méthode publique X509Certificate2(String) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide d'un nom de fichier de certificat.
Méthode publique X509Certificate2(X509Certificate) Initialise une nouvelle instance de la classe X509Certificate2 avec un objet X509Certificate.
Méthode publique X509Certificate2(Byte[], SecureString) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide d'un tableau d'octets et d'un mot de passe.
Méthode publique X509Certificate2(Byte[], String) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide d'un tableau d'octets et d'un mot de passe.
Méthode protégée X509Certificate2(SerializationInfo, StreamingContext) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant les informations de contexte de sérialisation et de flux spécifiées.
Méthode publique X509Certificate2(String, SecureString) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant un nom de fichier de certificat et un mot de passe.
Méthode publique X509Certificate2(String, String) Initialise une nouvelle instance de la classe X509Certificate2 à l'aide d'un nom de fichier de certificat et d'un mot de passe d'accès au certificat.
Méthode publique X509Certificate2(Byte[], SecureString, X509KeyStorageFlags) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant un tableau d'octets, un mot de passe et un indicateur de stockage de clé.
Méthode publique X509Certificate2(Byte[], String, X509KeyStorageFlags) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant un tableau d'octets, un mot de passe et un indicateur de stockage de clé.
Méthode publique X509Certificate2(String, SecureString, X509KeyStorageFlags) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant un nom de fichier de certificat, un mot de passe et un indicateur de stockage de clé.
Méthode publique X509Certificate2(String, String, X509KeyStorageFlags) Initialise une nouvelle instance de la classe X509Certificate2 en utilisant un nom de fichier de certificat, un mot de passe d'accès au certificat et un indicateur de stockage de clé.
Début
  Nom Description
Propriété publique Archived Obtient ou définit une valeur indiquant qu'un certificat X.509 est archivé.
Propriété publique Extensions Obtient une collection d'objets X509Extension.
Propriété publique FriendlyName Obtient ou définit l'alias associé à un certificat.
Propriété publique Handle Obtient un handle vers un contexte de certificat Microsoft Cryptographic API décrit par une structure PCCERT_CONTEXT non managée. (Hérité de X509Certificate.)
Propriété publique HasPrivateKey Obtient une valeur qui indique si un objet X509Certificate2 contient une clé privée.
Propriété publique Issuer Obtient le nom de l'autorité de certification qui a émis le certificat X.509v.3. (Hérité de X509Certificate.)
Propriété publique IssuerName Obtient le nom unique de l'émetteur du certificat.
Propriété publique NotAfter Obtient la date locale après laquelle un certificat n'est plus valide.
Propriété publique NotBefore Obtient la date locale à laquelle un certificat devient valide.
Propriété publique PrivateKey Obtient ou définit l'objet AsymmetricAlgorithm qui représente la clé privée associée à un certificat.
Propriété publique PublicKey Obtient un objet PublicKey associé à un certificat.
Propriété publique RawData Obtient les données brutes d'un certificat.
Propriété publique SerialNumber Obtient le numéro de série d'un certificat.
Propriété publique SignatureAlgorithm Obtient l'algorithme utilisé pour créer la signature d'un certificat.
Propriété publique Subject Obtient le nom unique de l'objet à partir du certificat. (Hérité de X509Certificate.)
Propriété publique SubjectName Obtient le nom unique de l'objet à partir du certificat.
Propriété publique Thumbprint Obtient l'empreinte numérique du certificat.
Propriété publique Version Obtient la version d'un certificat au format X.509.
Début
  Nom Description
Méthode publique Equals(Object) Compare si deux objets X509Certificate sont égaux. (Hérité de X509Certificate.)
Méthode publique Equals(X509Certificate) Compare si deux objets X509Certificate sont égaux. (Hérité de X509Certificate.)
Méthode publique Export(X509ContentType) Exporte l'objet X509Certificate en cours dans un tableau d'octets dans un format décrit par l'une des valeurs X509ContentType. (Hérité de X509Certificate.)
Méthode publique Export(X509ContentType, SecureString) Exporte l'objet X509Certificate en cours dans un tableau d'octets à l'aide du format spécifié et d'un mot de passe. (Hérité de X509Certificate.)
Méthode publique Export(X509ContentType, String) Exporte l'objet X509Certificate en cours dans un tableau d'octets dans un format décrit par l'une des valeurs X509ContentType, et à l'aide du mot de passe spécifié. (Hérité de X509Certificate.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique Membre statique GetCertContentType(Byte[]) Indique le type de certificat contenu dans un tableau d'octets.
Méthode publique Membre statique GetCertContentType(String) Indique le type de certificat contenu dans un fichier.
Méthode publique GetCertHash Retourne la valeur de hachage pour le certificat X.509v.3 sous forme de tableau d'octets. (Hérité de X509Certificate.)
Méthode publique GetCertHashString Retourne la valeur de hachage SHA1 pour le certificat X.509v.3 sous forme de chaîne hexadécimale. (Hérité de X509Certificate.)
Méthode publique GetEffectiveDateString Retourne la date d'effet de ce certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetExpirationDateString Retourne la date d'expiration de ce certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetFormat Retourne le nom du format de ce certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetHashCode Retourne le code de hachage pour le certificat X.509v.3 sous forme d'un entier. (Hérité de X509Certificate.)
Méthode publique GetIssuerName Obsolète. Retourne le nom de l'autorité de certification qui a émis le certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetKeyAlgorithm Retourne les informations d'algorithme de clé pour ce certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetKeyAlgorithmParameters Retourne les paramètres d'algorithme de clé pour le certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetKeyAlgorithmParametersString Retourne les paramètres d'algorithme de clé pour le certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetName Obsolète. Retourne le nom de l'entité de sécurité pour laquelle le certificat a été émis. (Hérité de X509Certificate.)
Méthode publique GetNameInfo Obtient les noms de l'objet et de l'émetteur d'un certificat.
Méthode publique GetPublicKey Retourne la clé publique pour le certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetPublicKeyString Retourne la clé publique pour le certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetRawCertData Retourne les données brutes pour l'intégralité du certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetRawCertDataString Retourne les données brutes pour l'intégralité du certificat X.509v.3. (Hérité de X509Certificate.)
Méthode publique GetSerialNumber Retourne le numéro de série du certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetSerialNumberString Retourne le numéro de série du certificat X.509v3. (Hérité de X509Certificate.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique Import(Byte[]) Remplit un objet X509Certificate2 avec les données d'un tableau d'octets. (Substitue X509Certificate.Import(Byte[]).)
Méthode publique Import(String) Remplit un objet X509Certificate2 avec des informations d'un fichier de certificat. (Substitue X509Certificate.Import(String).)
Méthode publique Import(Byte[], SecureString, X509KeyStorageFlags) Remplit un objet X509Certificate2 à l'aide de données d'un tableau d'octets, d'un mot de passe et d'un indicateur de stockage de clé. (Substitue X509Certificate.Import(Byte[], SecureString, X509KeyStorageFlags).)
Méthode publique Import(Byte[], String, X509KeyStorageFlags) Remplit un objet X509Certificate2 à l'aide de données d'un tableau d'octets, d'un mot de passe et d'indicateurs qui déterminent comment importer la clé privée. (Substitue X509Certificate.Import(Byte[], String, X509KeyStorageFlags).)
Méthode publique Import(String, SecureString, X509KeyStorageFlags) Remplit un objet X509Certificate2 avec les informations d'un fichier de certificat, d'un mot de passe et d'un indicateur de stockage de clé. (Substitue X509Certificate.Import(String, SecureString, X509KeyStorageFlags).)
Méthode publique Import(String, String, X509KeyStorageFlags) Remplit l'objet X509Certificate2 avec des informations venant d'un fichier de certificat, un mot de passe et une valeur X509KeyStorageFlags. (Substitue X509Certificate.Import(String, String, X509KeyStorageFlags).)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique Reset Réinitialise l'état d'un objet X509Certificate2. (Substitue X509Certificate.Reset().)
Méthode publique ToString() Affiche un certificat X.509 au format texte. (Substitue X509Certificate.ToString().)
Méthode publique ToString(Boolean) Affiche un certificat X.509 au format texte. (Substitue X509Certificate.ToString(Boolean).)
Méthode publique Verify Exécute une validation de chaîne X.509 à l'aide d'une stratégie de validation de base.
Début
  Nom Description
Implémentation d'interface explicite Méthode privée IDeserializationCallback.OnDeserialization Implémente l'interface ISerializable et est rappelé par l'événement de désérialisation lorsque la désérialisation est terminée. (Hérité de X509Certificate.)
Implémentation d'interface explicite Méthode privée ISerializable.GetObjectData Obtient des informations de sérialisation avec toutes les données nécessaires à la recréation d'une instance de l'objet X509Certificate en cours. (Hérité de X509Certificate.)
Début

Ce sont des groupes de travail ISO (Organisation internationale de normalisation) qui ont donné naissance à la structure X.509. Cette structure représente divers types d'informations, dont les attributs sur l'identité, le droit et le détenteur de ce droit (autorisations, âge, sexe, emplacement, affiliation, ainsi de suite). Bien que les spécifications ISO donnent de précieuses indications sur la structure elle-même, la classe X509Certificate2 modélise des scénarios d'usage définis dans les spécifications émises par le groupe de travail X.509 PKI (infrastructure à clé publique) de l'IETF (International Engineering Task Force). La plus détaillée de ces spécifications est RFC 3280, "Certificate and Certificate Revocation List (CRL) Profile".

L'exemple de code suivant montre comment utiliser un objet X509Certificate2 pou chiffrer et déchiffrer un fichier.


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

// To run this sample use the Certificate Creation Tool (Makecert.exe) to generate a test X.509 certificate and 
// place it in the local user store. 
// To generate an exchange key and make the key exportable run the following command from a Visual Studio command prompt: 

//makecert -r -pe -n "CN=CERT_SIGN_TEST_CERT" -b 01/01/2010 -e 01/01/2012 -sky exchange -ss my
namespace X509CertEncrypt
{
    class Program
    {

        // Path variables for source, encryption, and
        // decryption folders. Must end with a backslash.
        private static string encrFolder = @"C:\Encrypt\";
        private static string decrFolder = @"C:\Decrypt\";
        private static string originalFile = "TestData.txt";
        private static string encryptedFile = "TestData.enc";

        static void Main(string[] args)
        {

            // Create an input file with test data.
            StreamWriter sw = File.CreateText(originalFile);
            sw.WriteLine("Test data to be encrypted");
            sw.Close();

            // Get the certifcate to use to encrypt the key.
            X509Certificate2 cert = GetCertificateFromStore("CN=CERT_SIGN_TEST_CERT");
            if (cert == null)
            {
                Console.WriteLine("Certificatge 'CN=CERT_SIGN_TEST_CERT' not found.");
                Console.ReadLine();
            }


            // Encrypt the file using the public key from the certificate.
            EncryptFile(originalFile, (RSACryptoServiceProvider)cert.PublicKey.Key);

            // Decrypt the file using the private key from the certificate.
            DecryptFile(encryptedFile, (RSACryptoServiceProvider)cert.PrivateKey);

            //Display the original data and the decrypted data.
            Console.WriteLine("Original:   {0}", File.ReadAllText(originalFile));
            Console.WriteLine("Round Trip: {0}", File.ReadAllText(decrFolder + originalFile));
            Console.WriteLine("Press the Enter key to exit.");
            Console.ReadLine();
        }
        private static X509Certificate2 GetCertificateFromStore(string certName)
        {

            // Get the certificate store for the current user.
            X509Store store = new X509Store(StoreLocation.CurrentUser);
            try
            {
                store.Open(OpenFlags.ReadOnly);

                // Place all certificates in an X509Certificate2Collection object.
                X509Certificate2Collection certCollection = store.Certificates;
                // If using a certificate with a trusted root you do not need to FindByTimeValid, instead:
                // currentCerts.Find(X509FindType.FindBySubjectDistinguishedName, certName, true);
                X509Certificate2Collection currentCerts = certCollection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
                X509Certificate2Collection signingCert = currentCerts.Find(X509FindType.FindBySubjectDistinguishedName, certName, false);
                if (signingCert.Count == 0)
                    return null;
                // Return the first certificate in the collection, has the right name and is current.
                return signingCert[0];
            }
            finally
            {
                store.Close();
            }

        }

        // Encrypt a file using a public key.
        private static void EncryptFile(string inFile, RSACryptoServiceProvider rsaPublicKey)
        {
            using (AesManaged aesManaged = new AesManaged())
            {
                // Create instance of AesManaged for
                // symetric encryption of the data.
                aesManaged.KeySize = 256;
                aesManaged.BlockSize = 128;
                aesManaged.Mode = CipherMode.CBC;
                using (ICryptoTransform transform = aesManaged.CreateEncryptor())
                {
                    RSAPKCS1KeyExchangeFormatter keyFormatter = new RSAPKCS1KeyExchangeFormatter(rsaPublicKey);
                    byte[] keyEncrypted = keyFormatter.CreateKeyExchange(aesManaged.Key, aesManaged.GetType());

                    // Create byte arrays to contain
                    // the length values of the key and IV.
                    byte[] LenK = new byte[4];
                    byte[] LenIV = new byte[4];

                    int lKey = keyEncrypted.Length;
                    LenK = BitConverter.GetBytes(lKey);
                    int lIV = aesManaged.IV.Length;
                    LenIV = BitConverter.GetBytes(lIV);

                    // Write the following to the FileStream
                    // for the encrypted file (outFs):
                    // - length of the key
                    // - length of the IV
                    // - ecrypted key
                    // - the IV
                    // - the encrypted cipher content

                    int startFileName = inFile.LastIndexOf("\\") + 1;
                    // Change the file's extension to ".enc"
                    string outFile = encrFolder + inFile.Substring(startFileName, inFile.LastIndexOf(".") - startFileName) + ".enc";
                    Directory.CreateDirectory(encrFolder);

                    using (FileStream outFs = new FileStream(outFile, FileMode.Create))
                    {

                        outFs.Write(LenK, 0, 4);
                        outFs.Write(LenIV, 0, 4);
                        outFs.Write(keyEncrypted, 0, lKey);
                        outFs.Write(aesManaged.IV, 0, lIV);

                        // Now write the cipher text using
                        // a CryptoStream for encrypting.
                        using (CryptoStream outStreamEncrypted = new CryptoStream(outFs, transform, CryptoStreamMode.Write))
                        {

                            // By encrypting a chunk at
                            // a time, you can save memory
                            // and accommodate large files.
                            int count = 0;
                            int offset = 0;

                            // blockSizeBytes can be any arbitrary size.
                            int blockSizeBytes = aesManaged.BlockSize / 8;
                            byte[] data = new byte[blockSizeBytes];
                            int bytesRead = 0;

                            using (FileStream inFs = new FileStream(inFile, FileMode.Open))
                            {
                                do
                                {
                                    count = inFs.Read(data, 0, blockSizeBytes);
                                    offset += count;
                                    outStreamEncrypted.Write(data, 0, count);
                                    bytesRead += blockSizeBytes;
                                }
                                while (count > 0);
                                inFs.Close();
                            }
                            outStreamEncrypted.FlushFinalBlock();
                            outStreamEncrypted.Close();
                        }
                        outFs.Close();
                    }
                }
            }
        }


        // Decrypt a file using a private key.
        private static void DecryptFile(string inFile, RSACryptoServiceProvider rsaPrivateKey)
        {

            // Create instance of AesManaged for
            // symetric decryption of the data.
            using (AesManaged aesManaged = new AesManaged())
            {
                aesManaged.KeySize = 256;
                aesManaged.BlockSize = 128;
                aesManaged.Mode = CipherMode.CBC;

                // Create byte arrays to get the length of
                // the encrypted key and IV.
                // These values were stored as 4 bytes each
                // at the beginning of the encrypted package.
                byte[] LenK = new byte[4];
                byte[] LenIV = new byte[4];

                // Consruct the file name for the decrypted file.
                string outFile = decrFolder + inFile.Substring(0, inFile.LastIndexOf(".")) + ".txt";

                // Use FileStream objects to read the encrypted
                // file (inFs) and save the decrypted file (outFs).
                using (FileStream inFs = new FileStream(encrFolder + inFile, FileMode.Open))
                {

                    inFs.Seek(0, SeekOrigin.Begin);
                    inFs.Seek(0, SeekOrigin.Begin);
                    inFs.Read(LenK, 0, 3);
                    inFs.Seek(4, SeekOrigin.Begin);
                    inFs.Read(LenIV, 0, 3);

                    // Convert the lengths to integer values.
                    int lenK = BitConverter.ToInt32(LenK, 0);
                    int lenIV = BitConverter.ToInt32(LenIV, 0);

                    // Determine the start postition of
                    // the ciphter text (startC)
                    // and its length(lenC).
                    int startC = lenK + lenIV + 8;
                    int lenC = (int)inFs.Length - startC;

                    // Create the byte arrays for
                    // the encrypted AesManaged key,
                    // the IV, and the cipher text.
                    byte[] KeyEncrypted = new byte[lenK];
                    byte[] IV = new byte[lenIV];

                    // Extract the key and IV
                    // starting from index 8
                    // after the length values.
                    inFs.Seek(8, SeekOrigin.Begin);
                    inFs.Read(KeyEncrypted, 0, lenK);
                    inFs.Seek(8 + lenK, SeekOrigin.Begin);
                    inFs.Read(IV, 0, lenIV);
                    Directory.CreateDirectory(decrFolder);
                    // Use RSACryptoServiceProvider
                    // to decrypt the AesManaged key.
                    byte[] KeyDecrypted = rsaPrivateKey.Decrypt(KeyEncrypted, false);

                    // Decrypt the key.
                    using (ICryptoTransform transform = aesManaged.CreateDecryptor(KeyDecrypted, IV))
                    {

                        // Decrypt the cipher text from
                        // from the FileSteam of the encrypted
                        // file (inFs) into the FileStream
                        // for the decrypted file (outFs).
                        using (FileStream outFs = new FileStream(outFile, FileMode.Create))
                        {

                            int count = 0;
                            int offset = 0;

                            int blockSizeBytes = aesManaged.BlockSize / 8;
                            byte[] data = new byte[blockSizeBytes];

                            // By decrypting a chunk a time,
                            // you can save memory and
                            // accommodate large files.

                            // Start at the beginning
                            // of the cipher text.
                            inFs.Seek(startC, SeekOrigin.Begin);
                            using (CryptoStream outStreamDecrypted = new CryptoStream(outFs, transform, CryptoStreamMode.Write))
                            {
                                do
                                {
                                    count = inFs.Read(data, 0, blockSizeBytes);
                                    offset += count;
                                    outStreamDecrypted.Write(data, 0, count);

                                }
                                while (count > 0);

                                outStreamDecrypted.FlushFinalBlock();
                                outStreamDecrypted.Close();
                            }
                            outFs.Close();
                        }
                        inFs.Close();
                    }

                }

            }
        }

    }
}


L'exemple suivant crée un exécutable de ligne de commande qui prend un fichier de certificat en tant qu'argument et affiche dans la console diverses propriétés de certificat.


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
		{
			X509Certificate2 x509 = new X509Certificate2();
			//Create X509Certificate2 object from .cer file.
			byte[] rawData = 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.
			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.");
			}
	}

}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Date

Historique

Motif

Août 2010

Exemple de code ajouté.

Commentaires client.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ