MachineKeySection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 è |
| 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 |
| 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) |