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 delle chiavi e gli algoritmi usati per la crittografia e le operazioni MAC (Media Authentication Code) nelle funzioni di autenticazione, convalida dello stato di visualizzazione e isolamento delle applicazioni di stato sessione in Windows Form. 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
L'esempio in questa sezione illustra come specificare i valori dichiarativi 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 a livello di codice e modificare il contenuto della sezione nel file di MachineKey
configurazione. La MachineKey
sezione può essere configurata nel computer (Machine.config) o applicazione (Web.config) livello e controlla le chiavi e gli algoritmi usati per l'autenticazione di Windows Forms, la convalida dello stato di visualizzazione e l'isolamento dell'applicazione con stato sessione. Affinché una di queste funzionalità funzioni in una rete di server Web (una Web farm), gli DecryptionKey
attributi e della MachineKey
sezione devono essere configurati in modo esplicito e ValidationKey
identico con valori chiave validi. Il AutoGenerate
valore non funziona per le web farm, perché si basa su un segreto crittografico casuale, che viene persistente 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 della web farm, è consigliabile crittografare questa sezione usando la configurazione protetta.
Costruttori
MachineKeySection() |
Inizializza una nuova istanza della classe MachineKeySection tramite le impostazioni predefinite. |
Proprietà
ApplicationName |
Ottiene o imposta il nome dell'applicazione. |
CompatibilityMode |
Ottiene o imposta un valore che specifica se vengono usati i metodi di crittografia aggiornati per lo stato di visualizzazione introdotti dopo la release di .NET Framework 2.0 Service Pack 1. |
CurrentConfiguration |
Ottiene un riferimento all'istanza di Configuration di livello superiore che rappresenta la gerarchia di configurazione cui appartiene l'istanza corrente di ConfigurationElement. (Ereditato da ConfigurationElement) |
DataProtectorType |
Ottiene o imposta il nome del tipo di protezione dati. Il valore predefinito è Empty. |
Decryption |
Specifica l'algoritmo di crittografia usato per crittografare e decrittografare i dati dell'autenticazione basata su form. |
DecryptionKey |
Ottiene o imposta la chiave usata per crittografare e decrittografare i dati o il processo in base al quale viene generata la chiave. |
ElementInformation |
Ottiene un oggetto ElementInformation contenente le funzionalità e le informazioni 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 l'insieme di attributi bloccati. (Ereditato da ConfigurationElement) |
LockAllElementsExcept |
Ottiene l'insieme di elementi bloccati. (Ereditato da ConfigurationElement) |
LockAttributes |
Ottiene l'insieme di attributi bloccati. (Ereditato da ConfigurationElement) |
LockElements |
Ottiene l'insieme 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 oggetto SectionInformation contenente le informazioni non personalizzabili e la funzionalità dell'oggetto ConfigurationSection. (Ereditato da ConfigurationSection) |
Validation |
Specifica l'algoritmo di hash usato per convalidare i dati dell'autenticazione basata su form e dello stato di visualizzazione. |
ValidationAlgorithm |
Ottiene o imposta il nome dell'algoritmo usato per convalidare l'autenticazione basata su modulo e visualizzare i dati relativi allo stato. |
ValidationKey |
Ottiene o imposta la chiave usata per convalidare l'autenticazione basata su form e visualizzare i dati relativi allo stato o il processo in base al quale viene generata la chiave. |
Metodi
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 di ConfigurationElement con l'oggetto specificato. (Ereditato da ConfigurationElement) |
GetHashCode() |
Ottiene un valore univoco che rappresenta l'istanza corrente di 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 di assembly specificato. (Ereditato da ConfigurationElement) |
GetTransformedTypeString(String) |
Restituisce la versione trasformata del nome del tipo specificato. (Ereditato da ConfigurationElement) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
Init() |
Ripristina lo stato iniziale dell'oggetto ConfigurationElement. (Ereditato da ConfigurationElement) |
InitializeDefault() |
Da utilizzare per inizializzare un insieme predefinito di valori per l'oggetto ConfigurationElement. (Ereditato da ConfigurationElement) |
IsModified() |
Indica se questo elemento di configurazione è stato modificato dall'ultimo salvataggio o caricamento durante l'implementazione 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 all'elenco passato gli errori di proprietà non valida di questo oggetto ConfigurationElement e di tutti i sottoelementi. (Ereditato da ConfigurationElement) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione. (Ereditato da ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione. (Ereditato da ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Genera un'eccezione quando una proprietà obbligatoria non viene trovata. (Ereditato da ConfigurationElement) |
PostDeserialize() |
Da chiamare dopo la deserializzazione. (Ereditato da ConfigurationElement) |
PreSerialize(XmlWriter) |
Da chiamare prima della serializzazione. (Ereditato da ConfigurationElement) |
Reset(ConfigurationElement) |
Reimposta lo stato interno dell'oggetto ConfigurationElement, inclusi i blocchi e le raccolte di proprietà. (Ereditato da ConfigurationElement) |
ResetModified() |
Reimposta il valore del metodo IsModified() su |
SerializeElement(XmlWriter, Boolean) |
Scrive il contenuto di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata. (Ereditato da ConfigurationElement) |
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Crea una stringa XML contenente una visualizzazione non unita dell'oggetto ConfigurationSection come sezione singola da scrivere in un file. (Ereditato da ConfigurationSection) |
SerializeToXmlElement(XmlWriter, String) |
Scrive i tag esterni di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata. (Ereditato da ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Imposta una proprietà sul valore specificato. (Ereditato da ConfigurationElement) |
SetReadOnly() |
Imposta la proprietà IsReadOnly() 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 ConfigurationSection deve essere serializzata quando la gerarchia di 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 in modo da rimuovere tutti i valori che non devono essere salvati. (Ereditato da ConfigurationElement) |