MachineKeySection Classe

Définition

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 (Message Authentication Code) 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.

public ref class MachineKeySection sealed : System::Configuration::ConfigurationSection
public sealed class MachineKeySection : System.Configuration.ConfigurationSection
type MachineKeySection = class
    inherit ConfigurationSection
Public NotInheritable Class MachineKeySection
Inherits ConfigurationSection
Héritage

Exemples

L’exemple de cette section montre comment spécifier des valeurs de manière déclarative pour plusieurs attributs de la section machineKey , qui sont également accessibles en tant que membres de la MachineKeySection classe .

L’exemple suivant à partir d’un fichier de configuration montre comment spécifier des valeurs de manière déclarative pour la section machineKey .

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

Cet exemple utilise SHA1. En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.

L’exemple suivant montre comment utiliser la classe dans le MachineKeySection code.

#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.HMACSHA256;

        // 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();
    }
  }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Configuration
Imports System.Web
Imports System.Web.Configuration

Namespace Samples.Aspnet.SystemWebConfiguration
  Class UsingMachineKeySection
    Public Shared Sub Main()
      Try
        ' Set the path of the config file.
        Dim configPath As String = ""

        ' Get the Web application configuration object.
        Dim config As System.Configuration.Configuration = _
         System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(configPath)

        ' Get the section related object.
        Dim configSection As System.Web.Configuration.MachineKeySection = _
         CType(config.GetSection("system.web/machineKey"), _
         System.Web.Configuration.MachineKeySection)

        ' 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 value.
        Console.WriteLine("Validation: {0}", configSection.Validation)

        ' Set Validation value.
        configSection.Validation = MachineKeyValidation.HMACSHA256

        ' Update if not locked.
        If Not configSection.SectionInformation.IsLocked Then
          config.Save()
          Console.WriteLine("** Configuration updated.")
        Else
          Console.WriteLine("** Could not update, section is locked.")
        End If

      Catch e As Exception
        ' Unknown error.
        Console.WriteLine(e.ToString())
      End Try

      ' Display and wait
      Console.ReadLine()
    End Sub
  End Class
End Namespace

Remarques

La MachineKeySection classe fournit un moyen d’accéder et de modifier par programme le contenu de la MachineKey section dans le fichier de configuration. La MachineKey section peut être configurée au niveau de l’ordinateur (Machine.config) ou de l’application (Web.config) et contrôle les clés et les algorithmes utilisés pour l’authentification Windows Forms, la validation de l’état d’affichage et l’isolation de l’application d’état de session. Pour que l’une de ces fonctionnalités fonctionne sur un réseau de serveurs Web (une batterie de serveurs Web), les DecryptionKey attributs et ValidationKey de la MachineKey section doivent être configurés explicitement et de manière identique avec des valeurs de clé valides. La AutoGenerate valeur ne fonctionne pas pour les batteries de serveurs Web, car elle s’appuie sur un secret aléatoire de chiffrement, qui est conservé à l’aide de la protection locale de l’ordinateur et ne sera pas le même sur plusieurs ordinateurs.

Notes pour les héritiers

Si vous souhaitez spécifier des clés dans cette section de configuration, comme cela est nécessaire dans les scénarios de batterie de serveurs web, il est recommandé de chiffrer cette section à l’aide de la configuration protégée.

Constructeurs

MachineKeySection()

Initialise une nouvelle instance de la classe MachineKeySection en utilisant les paramètres par défaut.

Propriétés

ApplicationName

Obtient ou définit le nom de l'application.

CompatibilityMode

Obtient ou définit une valeur qui indique si les méthodes de chiffrement mises à niveau pour l’état d’affichage introduites après la mise en production du Service Pack 1 de .NET Framework version 2.0 sont utilisées.

CurrentConfiguration

Obtient une référence à l'instance Configuration de niveau supérieur qui représente la hiérarchie de configuration à laquelle l'instance ConfigurationElement actuelle appartient.

(Hérité de ConfigurationElement)
DataProtectorType

Obtient ou définit le nom du type de protecteur de données. La valeur par défaut est Empty.

Decryption

Spécifie l'algorithme de chiffrement utilisé pour chiffrer et déchiffrer les données d'authentification par formulaire.

DecryptionKey

Obtient ou définit la clé utilisée pour chiffrer et déchiffrer les données, ou le processus par lequel la clé est générée.

ElementInformation

Obtient un objet ElementInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationElement.

(Hérité de ConfigurationElement)
ElementProperty

Obtient l'objet ConfigurationElementProperty qui représente l'objet ConfigurationElement lui-même.

(Hérité de ConfigurationElement)
EvaluationContext

Obtient l'objet ContextInformation pour l'objet ConfigurationElement.

(Hérité de ConfigurationElement)
HasContext

Obtient une valeur qui indique si la propriété CurrentConfiguration a la valeur null.

(Hérité de ConfigurationElement)
Item[ConfigurationProperty]

Obtient ou définit une propriété ou un attribut de cet élément de configuration.

(Hérité de ConfigurationElement)
Item[String]

Obtient ou définit une propriété, un attribut ou un élément enfant de cet élément de configuration.

(Hérité de ConfigurationElement)
LockAllAttributesExcept

Obtient la collection d'attributs verrouillés.

(Hérité de ConfigurationElement)
LockAllElementsExcept

Obtient la collection d'éléments verrouillés.

(Hérité de ConfigurationElement)
LockAttributes

Obtient la collection d'attributs verrouillés.

(Hérité de ConfigurationElement)
LockElements

Obtient la collection d'éléments verrouillés.

(Hérité de ConfigurationElement)
LockItem

Obtient ou définit une valeur indiquant si l'élément est verrouillé.

(Hérité de ConfigurationElement)
Properties

Obtient la collection de propriétés.

(Hérité de ConfigurationElement)
SectionInformation

Obtient un objet SectionInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationSection.

(Hérité de ConfigurationSection)
Validation

Spécifie l'algorithme de hachage utilisé pour la validation de l'authentification par formulaire et des données d'état d'affichage.

ValidationAlgorithm

Obtient ou définit le nom d’un algorithme utilisé pour valider l’authentification par formulaires et voir les données d’état.

ValidationKey

Obtient ou définit la clé utilisée pour valider l'authentification par formulaire et les données d'état d'affichage, ou le processus par lequel la clé est générée.

Méthodes

DeserializeElement(XmlReader, Boolean)

Lit du XML à partir du fichier de configuration.

(Hérité de ConfigurationElement)
DeserializeSection(XmlReader)

Lit du XML à partir du fichier de configuration.

(Hérité de ConfigurationSection)
Equals(Object)

Compare l’instance de ConfigurationElement actuelle à l’objet spécifié.

(Hérité de ConfigurationElement)
GetHashCode()

Obtient une valeur unique représentant l'instance actuelle de ConfigurationElement.

(Hérité de ConfigurationElement)
GetRuntimeObject()

Retourne un objet personnalisé en cas de substitution dans une classe dérivée.

(Hérité de ConfigurationSection)
GetTransformedAssemblyString(String)

Retourne la version transformée du nom de l'assembly spécifié.

(Hérité de ConfigurationElement)
GetTransformedTypeString(String)

Retourne la version transformée du nom de type spécifié.

(Hérité de ConfigurationElement)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Init()

Rétablit l’état initial de l’objet ConfigurationElement.

(Hérité de ConfigurationElement)
InitializeDefault()

Utilisé pour initialiser un jeu de valeurs par défaut pour l'objet ConfigurationElement.

(Hérité de ConfigurationElement)
IsModified()

Indique si cet élément de configuration a été modifié depuis son dernier enregistrement ou chargement lorsqu'il est implémenté dans une classe dérivée.

(Hérité de ConfigurationSection)
IsReadOnly()

Obtient une valeur indiquant si l’objet ConfigurationElement est en lecture seule.

(Hérité de ConfigurationElement)
ListErrors(IList)

Ajoute les erreurs de propriété non valide dans cet objet ConfigurationElement et dans tous les sous-éléments à la liste passée.

(Hérité de ConfigurationElement)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnDeserializeUnrecognizedAttribute(String, String)

Obtient une valeur indiquant si un attribut inconnu est rencontré pendant la désérialisation.

(Hérité de ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Obtient une valeur indiquant si un élément inconnu est rencontré pendant la désérialisation.

(Hérité de ConfigurationElement)
OnRequiredPropertyNotFound(String)

Lève une exception lorsqu'une propriété requise est introuvable.

(Hérité de ConfigurationElement)
PostDeserialize()

Appelé après la désérialisation.

(Hérité de ConfigurationElement)
PreSerialize(XmlWriter)

Appelé avant la sérialisation.

(Hérité de ConfigurationElement)
Reset(ConfigurationElement)

Rétablit l'état interne de l'objet ConfigurationElement, y compris les verrouillages et les collections de propriétés.

(Hérité de ConfigurationElement)
ResetModified()

Réinitialise la valeur de la méthode IsModified() à false en cas d’implémentation dans une classe dérivée.

(Hérité de ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Écrit le contenu de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée.

(Hérité de ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Crée une chaîne XML contenant un affichage non fusionné de l'objet ConfigurationSection sous la forme d'une section unique à écrire dans un fichier.

(Hérité de ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Écrit les balises extérieures de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée.

(Hérité de ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Affecte la valeur spécifiée à une propriété.

(Hérité de ConfigurationElement)
SetReadOnly()

Définit la propriété IsReadOnly() pour l'objet ConfigurationElement et tous les sous-éléments.

(Hérité de ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Indique si l’élément spécifié doit être sérialisé lorsque la hiérarchie d’objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.

(Hérité de ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Indique si la propriété spécifiée doit être sérialisée lorsque la hiérarchie d’objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.

(Hérité de ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Indique si l’instance actuelle ConfigurationSection doit être sérialisée lorsque la hiérarchie d’objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.

(Hérité de ConfigurationSection)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifie l'objet ConfigurationElement pour supprimer toutes les valeurs qui ne doivent pas être enregistrées.

(Hérité de ConfigurationElement)

S’applique à

Voir aussi