Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

MachineKeySection, classe

Mise à jour : novembre 2007

Définit les paramètres de configuration qui contrôlent la génération de clés et les algorithmes utilisés dans le chiffrement, le déchiffrement et les opérations MAC (Media Access Control) dans l'authentification Windows Forms, la validation d'état d'affichage et l'isolation d'application des états de session. Cette classe ne peut pas être héritée.

Espace de noms :  System.Web.Configuration
Assembly :  System.Web (dans System.Web.dll)

public sealed class MachineKeySection : ConfigurationSection
public final class MachineKeySection extends ConfigurationSection
public final class MachineKeySection extends ConfigurationSection

La classe MachineKeySection permet d'accéder au contenu de la section <MachineKey> du fichier de configuration et de le modifier par programme. La section <MachineKey> peut être configurée au niveau de l'ordinateur (Machine.config) ou de l'application (Web.config) et contrôle les clés et algorithmes qui sont utilisés pour l'authentification Windows Forms, la validation d'état d'affichage et l'isolation d'application des états de session. Pour que chacune de ces fonctionnalités s'exécute sur un réseau de serveurs Web (une batterie de serveurs Web), les attributs <MachineKey> doivent être configurés explicitement et de manière identique avec des valeurs de clé valides. La valeur "AutoGenerate" ne fonctionne pas pour les batteries de serveurs Web, car elle s'appuie sur un secret aléatoire d'un point de vue du chiffrement qui est rendu persistant à l'aide de la protection d'ordinateur locale et ne sera pas cohérent sur plusieurs ordinateurs.

Remarques à l'attention des implémenteurs :

S'il est nécessaire de spécifier des clés dans cette section de configuration, comme c'est souvent le cas dans les scénarios de batterie de serveurs Web, il est recommandé de chiffrer cette section en utilisant une configuration protégée.

L'exemple de cette section montre comment spécifier de façon déclarative les valeurs de plusieurs attributs de la section machineKey, élément (Schéma des paramètres ASP.NET), auxquels il est également possible d'accéder en tant que membres de la classe MachineKeySection.

L'exemple suivant basé sur un fichier de configuration montre comment spécifier de façon déclarative les valeurs de la section machineKey, élément (Schéma des paramètres ASP.NET).

<system.web>
  <machineKey validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
    validation="SHA1"/>
</system.web>

L'exemple suivant montre comment utiliser la classe MachineKeySection.

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Web;
using System.Web.Configuration;

#endregion

namespace Samples.Aspnet.SystemWebConfiguration
{
  class UsingMachineKeySection
  {
    static void Main(string[] args)
    {
      try
      {
        // Set the path of the config file.
        string configPath = "";

        // Get the Web application configuration object.
        Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

        // Get the section related object.
        MachineKeySection configSection = 
          (MachineKeySection)config.GetSection("system.web/machineKey");

        // Display title and info.
        Console.WriteLine("ASP.NET Configuration Info");
        Console.WriteLine();

        // Display Config details.
        Console.WriteLine("File Path: {0}",
          config.FilePath);
        Console.WriteLine("Section Path: {0}",
          configSection.SectionInformation.Name);

        // Display ValidationKey property.
        Console.WriteLine("ValidationKey: {0}",
          configSection.ValidationKey);

        // Set ValidationKey property.
        configSection.ValidationKey = "AutoGenerate,IsolateApps";

        // Display DecryptionKey property.
        Console.WriteLine("DecryptionKey: {0}",
          configSection.DecryptionKey);

        // Set DecryptionKey property.
        configSection.DecryptionKey = "AutoGenerate,IsolateApps";

        // Display Validation property.
        Console.WriteLine("Validation: {0}",
          configSection.Validation);

        // Set Validation property.
        configSection.Validation = MachineKeyValidation.SHA1;

        // Update if not locked.
        if (!configSection.SectionInformation.IsLocked)
        {
          config.Save();
          Console.WriteLine("** Configuration updated.");
        }
        else
        {
          Console.WriteLine("** Could not update, section is locked.");
        }
      }

      catch (Exception e)
      {
        // Unknown error.
        Console.WriteLine(e.ToString());
      }

      // Display and wait
      Console.ReadLine();
    }
  }
}


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.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft