MachineKeySection Classe

Definizione

Definisce le impostazioni di configurazione che controllano la generazione di chiavi e gli algoritmi usati nelle operazioni di crittografia, decrittografia e codice mac (Message Authentication Code) in Windows Forms autenticazione, convalida dello stato di visualizzazione e isolamento dell'applicazione stato sessione. La classe non può essere ereditata.

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
Ereditarietà

Esempio

Nell'esempio riportato in questa sezione viene illustrato come specificare i valori in modo dichiarativo per diversi attributi della sezione machineKey , a cui è possibile accedere anche come membri della MachineKeySection classe .

Nell'esempio seguente di un file di configurazione viene illustrato come specificare i valori in modo dichiarativo per la sezione machineKey .

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

In questo esempio viene usato SHA1. A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.

Nell'esempio seguente viene illustrato come usare la MachineKeySection classe nel codice.

#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

Commenti

La MachineKeySection classe consente di accedere e modificare a livello di codice il contenuto della MachineKey sezione nel file di configurazione. La sezione MachineKey può essere configurata a livello di computer (Machine.config) o applicazione (Web.config) e controlla le chiavi e gli algoritmi usati per l'autenticazione Windows Forms, la convalida dello stato di visualizzazione e l'isolamento dell'applicazione stato sessione. Affinché una di queste funzionalità funzioni funzioni in una rete di server Web (una Web farm), gli DecryptionKey attributi e ValidationKey della MachineKey sezione devono essere configurati in modo esplicito e identico con valori di chiave validi. Il AutoGenerate valore non funziona per le Web farm, perché si basa su un segreto crittograficamente casuale, che viene salvato in modo permanente usando la protezione locale del computer e non sarà lo stesso in più computer.

Note per gli eredi

Se si specificano chiavi in questa sezione di configurazione, come richiesto negli scenari di Web farm, è consigliabile crittografare questa sezione usando la configurazione protetta.

Costruttori

Nome Descrizione
MachineKeySection()

Inizializza una nuova istanza della MachineKeySection classe utilizzando le impostazioni predefinite.

Proprietà

Nome Descrizione
ApplicationName

Ottiene o imposta il nome dell'applicazione.

CompatibilityMode

Ottiene o imposta un valore che specifica se vengono utilizzati i metodi di crittografia aggiornati per lo stato di visualizzazione introdotti dopo la versione 2.0 di Service Pack 1 di .NET Framework.

CurrentConfiguration

Ottiene un riferimento all'istanza di Configuration di primo livello che rappresenta la gerarchia di configurazione a cui appartiene l'istanza di ConfigurationElement corrente.

(Ereditato da ConfigurationElement)
DataProtectorType

Ottiene o imposta il nome del tipo di protezione dati. Il valore predefinito è Empty.

Decryption

Specifica l'algoritmo di crittografia utilizzato per crittografare e decrittografare i dati di autenticazione basata su form.

DecryptionKey

Ottiene o imposta la chiave utilizzata per crittografare e decrittografare i dati oppure il processo in base al quale viene generata la chiave.

ElementInformation

Ottiene un oggetto ElementInformation che contiene le informazioni e le funzionalità non personalizzabili dell'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
ElementProperty

Ottiene l'oggetto ConfigurationElementProperty che rappresenta l'oggetto ConfigurationElement stesso.

(Ereditato da ConfigurationElement)
EvaluationContext

Ottiene l'oggetto ContextInformation per l'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
HasContext

Ottiene un valore che indica se la proprietà CurrentConfiguration è null.

(Ereditato da ConfigurationElement)
Item[ConfigurationProperty]

Ottiene o imposta una proprietà o un attributo di questo elemento di configurazione.

(Ereditato da ConfigurationElement)
Item[String]

Ottiene o imposta una proprietà, un attributo o un elemento figlio di questo elemento di configurazione.

(Ereditato da ConfigurationElement)
LockAllAttributesExcept

Ottiene la raccolta di attributi bloccati.

(Ereditato da ConfigurationElement)
LockAllElementsExcept

Ottiene la raccolta di elementi bloccati.

(Ereditato da ConfigurationElement)
LockAttributes

Ottiene la raccolta di attributi bloccati.

(Ereditato da ConfigurationElement)
LockElements

Ottiene la raccolta di elementi bloccati.

(Ereditato da ConfigurationElement)
LockItem

Ottiene o imposta un valore che indica se l'elemento è bloccato.

(Ereditato da ConfigurationElement)
Properties

Ottiene la raccolta di proprietà.

(Ereditato da ConfigurationElement)
SectionInformation

Ottiene un SectionInformation oggetto che contiene le informazioni e le funzionalità non personalizzabili dell'oggetto ConfigurationSection .

(Ereditato da ConfigurationSection)
Validation

Specifica l'algoritmo hash utilizzato per convalidare l'autenticazione dei moduli e visualizzare i dati sullo stato.

ValidationAlgorithm

Ottiene o imposta il nome dell'algoritmo utilizzato per convalidare l'autenticazione basata su form e visualizzare i dati sullo stato.

ValidationKey

Ottiene o imposta la chiave utilizzata per convalidare l'autenticazione basata su form e visualizzare i dati sullo stato oppure il processo in base al quale viene generata la chiave.

Metodi

Nome Descrizione
DeserializeElement(XmlReader, Boolean)

Legge il codice XML dal file di configurazione.

(Ereditato da ConfigurationElement)
DeserializeSection(XmlReader)

Legge il codice XML dal file di configurazione.

(Ereditato da ConfigurationSection)
Equals(Object)

Confronta l'istanza corrente ConfigurationElement con l'oggetto specificato.

(Ereditato da ConfigurationElement)
GetHashCode()

Ottiene un valore univoco che rappresenta l'istanza corrente ConfigurationElement .

(Ereditato da ConfigurationElement)
GetRuntimeObject()

Restituisce un oggetto personalizzato quando ne viene eseguito l'override in una classe derivata.

(Ereditato da ConfigurationSection)
GetTransformedAssemblyString(String)

Restituisce la versione trasformata del nome dell'assembly specificato.

(Ereditato da ConfigurationElement)
GetTransformedTypeString(String)

Restituisce la versione trasformata del nome del tipo specificato.

(Ereditato da ConfigurationElement)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
Init()

Imposta l'oggetto ConfigurationElement sullo stato iniziale.

(Ereditato da ConfigurationElement)
InitializeDefault()

Utilizzato per inizializzare un set predefinito di valori per l'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
IsModified()

Indica se questo elemento di configurazione è stato modificato dopo l'ultimo salvataggio o caricamento quando implementato in una classe derivata.

(Ereditato da ConfigurationSection)
IsReadOnly()

Ottiene un valore che indica se l'oggetto ConfigurationElement è di sola lettura.

(Ereditato da ConfigurationElement)
ListErrors(IList)

Aggiunge gli errori di proprietà non validi in questo oggetto ConfigurationElement e in tutti i sottoelementi all'elenco passato.

(Ereditato da ConfigurationElement)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnDeserializeUnrecognizedAttribute(String, String)

Ottiene un valore che indica se viene rilevato un attributo sconosciuto durante la deserializzazione.

(Ereditato da ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Ottiene un valore che indica se durante la deserializzazione viene rilevato un elemento sconosciuto.

(Ereditato da ConfigurationElement)
OnRequiredPropertyNotFound(String)

Genera un'eccezione quando non viene trovata una proprietà obbligatoria.

(Ereditato da ConfigurationElement)
PostDeserialize()

Chiamato dopo la deserializzazione.

(Ereditato da ConfigurationElement)
PreSerialize(XmlWriter)

Chiamato prima della serializzazione.

(Ereditato da ConfigurationElement)
Reset(ConfigurationElement)

Reimposta lo stato interno dell'oggetto ConfigurationElement , inclusi i blocchi e gli insiemi di proprietà.

(Ereditato da ConfigurationElement)
ResetModified()

Reimposta il valore del IsModified() metodo su false quando implementato in una classe derivata.

(Ereditato da ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Scrive il contenuto di questo elemento di configurazione nel file di configurazione quando implementato in una classe derivata.

(Ereditato da ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Crea una stringa XML contenente una visualizzazione non archiviata dell'oggetto ConfigurationSection come singola sezione da scrivere in un file.

(Ereditato da ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Scrive i tag esterni di questo elemento di configurazione nel file di configurazione quando implementato in una classe derivata.

(Ereditato da ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Imposta una proprietà sul valore specificato.

(Ereditato da ConfigurationElement)
SetReadOnly()

Imposta la IsReadOnly() proprietà per l'oggetto ConfigurationElement e tutti i sottoelementi.

(Ereditato da ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Indica se l'elemento specificato deve essere serializzato quando la gerarchia degli oggetti di configurazione viene serializzata per la versione di destinazione specificata di .NET Framework.

(Ereditato da ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Indica se la proprietà specificata deve essere serializzata quando la gerarchia degli oggetti di configurazione viene serializzata per la versione di destinazione specificata di .NET Framework.

(Ereditato da ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Indica se l'istanza corrente di ConfigurationSection deve essere serializzata quando la gerarchia degli oggetti di configurazione viene serializzata per la versione di destinazione specificata di .NET Framework.

(Ereditato da ConfigurationSection)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifica l'oggetto ConfigurationElement per rimuovere tutti i valori che non devono essere salvati.

(Ereditato da ConfigurationElement)

Si applica a

Vedi anche