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 les opérations de chiffrement, de déchiffrement et de code d’authentification de message (MAC) dans Windows Forms l’authentification, la validation d’état d’affichage et l’isolation des applications à l’état 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 d’un fichier de configuration montre comment spécifier des valeurs déclaratives 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 permet d’accéder par programmation et de modifier le contenu de la MachineKey section dans le fichier de configuration. La section MachineKey peut être configurée sur l’ordinateur (Machine.config) ou l’application (Web.config) et contrôle les clés et algorithmes utilisés pour l’authentification Windows Forms, la validation d’état d’affichage et l’isolation des applications à l’é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 attributs et DecryptionKey les ValidationKey attributs 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 par chiffrement, qui est conservé à l’aide de la protection locale de l’ordinateur et ne sera pas identique 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

Nom Description
MachineKeySection()

Initialise une nouvelle instance de la classe à l’aide MachineKeySection des paramètres par défaut.

Propriétés

Nom Description
ApplicationName

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

CompatibilityMode

Obtient ou définit une valeur qui spécifie si les méthodes de chiffrement mises à niveau pour l’état d’affichage qui ont été introduites après la version 2.0 service Pack 1 du .NET Framework sont utilisées.

CurrentConfiguration

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

(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 informations et fonctionnalités 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 est 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 SectionInformation objet qui contient les informations et fonctionnalités non personnalisables de l’objet ConfigurationSection .

(Hérité de ConfigurationSection)
Validation

Spécifie l’algorithme de hachage utilisé pour valider l’authentification par formulaire et afficher les données d’état.

ValidationAlgorithm

Obtient ou définit le nom de l’algorithme utilisé pour valider l’authentification par formulaire et afficher les données d’état.

ValidationKey

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

Méthodes

Nom Description
DeserializeElement(XmlReader, Boolean)

Lit le code XML à partir du fichier de configuration.

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

Lit le code XML à partir du fichier de configuration.

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

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

(Hérité de ConfigurationElement)
GetHashCode()

Obtient une valeur unique représentant l’instance actuelle 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 d’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 la Type de l’instance actuelle.

(Hérité de Object)
Init()

Définit l’objet ConfigurationElement à son état initial.

(Hérité de ConfigurationElement)
InitializeDefault()

Permet d’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 chargé lors de l’implémentation 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 valides 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 Objectactuel.

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

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

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

Obtient une valeur indiquant si un élément inconnu est rencontré lors de 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éinitialise l’état interne de l’objet ConfigurationElement , y compris les verrous et les collections de propriétés.

(Hérité de ConfigurationElement)
ResetModified()

Réinitialise la valeur de la IsModified() méthode false lorsqu’elle est implémentée 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 en cas d’implémentation dans une classe dérivée.

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

Crée une chaîne XML contenant une vue non fusionnée 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 externes de cet élément de configuration dans le fichier de configuration en cas d’implémentation dans une classe dérivée.

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

Définit une propriété sur la valeur spécifiée.

(Hérité de ConfigurationElement)
SetReadOnly()

Définit la IsReadOnly() propriété de l’objet ConfigurationElement et de 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 ConfigurationSection actuelle 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 framework .NET.

(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