MachineKeySection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje nastavení konfigurace, které řídí generování klíčů a algoritmy používané při operacích šifrování, dešifrování a ověřovacího kódu zpráv (MAC) v model Windows Forms ověřování, ověřování stavu zobrazení a izolace aplikace stavu relace. Tato třída se nemůže dědit.
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
- Dědičnost
Příklady
Příklad v této části ukazuje, jak zadat hodnoty deklarativní pro několik atributů oddílu machineKey , ke kterým lze přistupovat také jako členové MachineKeySection třídy.
Následující příklad z konfiguračního souboru ukazuje, jak zadat hodnoty deklarativní pro oddíl machineKey .
<system.web>
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
</system.web>
V tomto příkladu se používá SHA1. Kvůli problémům se kolizemi s SHA1 doporučuje Microsoft SHA256.
Následující příklad ukazuje, jak používat MachineKeySection třídu v kódu.
#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
Poznámky
Třída MachineKeySection poskytuje způsob, jak programově přistupovat a upravovat obsah MachineKey oddílu v konfiguračním souboru. Oddíl MachineKey lze nakonfigurovat na úrovni počítače (Machine.config) nebo aplikace (Web.config) a řídí klíče a algoritmy používané pro ověřování model Windows Forms, ověřování stavu zobrazení a izolaci aplikace stavu relace. Aby každá z těchto funkcí fungovala v síti webových serverů (webová farma), DecryptionKey musí být atributy ValidationKey oddílu nakonfigurované explicitně a MachineKey identicky s platnými hodnotami klíčů. Hodnota AutoGenerate nefunguje u webových farem, protože spoléhá na kryptograficky náhodný tajný kód, který je trvalý pomocí ochrany místního počítače a nebude stejný ve více než jednom počítači.
Poznámky pro dědice
Pokud v této části konfigurace zadáte klíče, jak je vyžadováno ve scénářích webové farmy, doporučujeme tento oddíl zašifrovat pomocí chráněné konfigurace.
Konstruktory
| Name | Description |
|---|---|
| MachineKeySection() |
Inicializuje novou instanci MachineKeySection třídy pomocí výchozího nastavení. |
Vlastnosti
| Name | Description |
|---|---|
| ApplicationName |
Získá nebo nastaví název aplikace. |
| CompatibilityMode |
Získá nebo nastaví hodnotu, která určuje, zda se používají upgradované metody šifrování pro stav zobrazení, které byly zavedeny po vydání .NET Framework verze 2.0 Service Pack 1. |
| CurrentConfiguration |
Získá odkaz na instanci nejvyšší úrovně Configuration, která představuje hierarchii konfigurace, do které patří aktuální instance ConfigurationElement. (Zděděno od ConfigurationElement) |
| DataProtectorType |
Získá nebo nastaví název typu ochrany dat. Výchozí hodnota je Empty. |
| Decryption |
Určuje šifrovací algoritmus, který se používá k šifrování a dešifrování ověřovacích dat formulářů. |
| DecryptionKey |
Získá nebo nastaví klíč, který se používá k šifrování a dešifrování dat, nebo proces, pomocí kterého se klíč generuje. |
| ElementInformation |
Získá ElementInformation objekt, který obsahuje neuzpůsobitelné informace a funkce ConfigurationElement objektu. (Zděděno od ConfigurationElement) |
| ElementProperty |
Získá ConfigurationElementProperty objekt, který představuje ConfigurationElement objekt sám. (Zděděno od ConfigurationElement) |
| EvaluationContext |
Získá objekt ContextInformation pro objekt ConfigurationElement. (Zděděno od ConfigurationElement) |
| HasContext |
Získá hodnotu, která určuje, zda CurrentConfiguration vlastnost je |
| Item[ConfigurationProperty] |
Získá nebo nastaví vlastnost nebo atribut tohoto elementu konfigurace. (Zděděno od ConfigurationElement) |
| Item[String] |
Získá nebo nastaví vlastnost, atribut nebo podřízený prvek tohoto konfiguračního elementu. (Zděděno od ConfigurationElement) |
| LockAllAttributesExcept |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
| LockAllElementsExcept |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
| LockAttributes |
Získá kolekci uzamčených atributů. (Zděděno od ConfigurationElement) |
| LockElements |
Získá kolekci uzamčených prvků. (Zděděno od ConfigurationElement) |
| LockItem |
Získá nebo nastaví hodnotu označující, zda je prvek uzamčen. (Zděděno od ConfigurationElement) |
| Properties |
Získá kolekci vlastností. (Zděděno od ConfigurationElement) |
| SectionInformation |
SectionInformation Získá objekt, který obsahuje neuzpůsobitelné informace a funkce objektuConfigurationSection. (Zděděno od ConfigurationSection) |
| Validation |
Určuje algoritmus hash, který se používá k ověřování formulářů a zobrazení dat o stavu. |
| ValidationAlgorithm |
Získá nebo nastaví název algoritmu, který se používá k ověření ověřování formulářů a zobrazení stavových dat. |
| ValidationKey |
Získá nebo nastaví klíč, který slouží k ověření ověřování formulářů a zobrazení stavových dat, nebo proces, pomocí kterého se klíč vygeneruje. |
Metody
| Name | Description |
|---|---|
| DeserializeElement(XmlReader, Boolean) |
Načte XML z konfiguračního souboru. (Zděděno od ConfigurationElement) |
| DeserializeSection(XmlReader) |
Načte XML z konfiguračního souboru. (Zděděno od ConfigurationSection) |
| Equals(Object) |
Porovná aktuální ConfigurationElement instanci se zadaným objektem. (Zděděno od ConfigurationElement) |
| GetHashCode() |
Získá jedinečnou hodnotu představující aktuální ConfigurationElement instanci. (Zděděno od ConfigurationElement) |
| GetRuntimeObject() |
Vrátí vlastní objekt při přepsání v odvozené třídě. (Zděděno od ConfigurationSection) |
| GetTransformedAssemblyString(String) |
Vrátí transformovanou verzi zadaného názvu sestavení. (Zděděno od ConfigurationElement) |
| GetTransformedTypeString(String) |
Vrátí transformovanou verzi zadaného názvu typu. (Zděděno od ConfigurationElement) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| Init() |
Nastaví objekt ConfigurationElement na jeho počáteční stav. (Zděděno od ConfigurationElement) |
| InitializeDefault() |
Slouží k inicializaci výchozí sady hodnot pro objekt ConfigurationElement. (Zděděno od ConfigurationElement) |
| IsModified() |
Určuje, zda byl tento konfigurační prvek změněn od posledního uložení nebo načtení při implementaci v odvozené třídě. (Zděděno od ConfigurationSection) |
| IsReadOnly() |
Získá hodnotu určující, zda ConfigurationElement objekt je jen pro čtení. (Zděděno od ConfigurationElement) |
| ListErrors(IList) |
Přidá chyby neplatné vlastnosti v tomto ConfigurationElement objektu a ve všech dílčích poplatcích do předaného seznamu. (Zděděno od ConfigurationElement) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnDeserializeUnrecognizedAttribute(String, String) |
Získá hodnotu určující, zda neznámý atribut je zjištěn během deserializace. (Zděděno od ConfigurationElement) |
| OnDeserializeUnrecognizedElement(String, XmlReader) |
Získá hodnotu určující, zda neznámý prvek je zjištěn během deserializace. (Zděděno od ConfigurationElement) |
| OnRequiredPropertyNotFound(String) |
Vyvolá výjimku, pokud nebyla nalezena požadovaná vlastnost. (Zděděno od ConfigurationElement) |
| PostDeserialize() |
Volal po deserializaci. (Zděděno od ConfigurationElement) |
| PreSerialize(XmlWriter) |
Volá se před serializací. (Zděděno od ConfigurationElement) |
| Reset(ConfigurationElement) |
Obnoví vnitřní stav objektu ConfigurationElement , včetně zámků a kolekcí vlastností. (Zděděno od ConfigurationElement) |
| ResetModified() |
Obnoví hodnotu IsModified() metody na |
| SerializeElement(XmlWriter, Boolean) |
Zapíše obsah tohoto konfiguračního prvku do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
| SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Vytvoří řetězec XML obsahující nerozčleněné zobrazení objektu ConfigurationSection jako jeden oddíl pro zápis do souboru. (Zděděno od ConfigurationSection) |
| SerializeToXmlElement(XmlWriter, String) |
Zapíše vnější značky tohoto konfiguračního prvku do konfiguračního souboru při implementaci v odvozené třídě. (Zděděno od ConfigurationElement) |
| SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Nastaví vlastnost na zadanou hodnotu. (Zděděno od ConfigurationElement) |
| SetReadOnly() |
IsReadOnly() Nastaví vlastnost pro ConfigurationElement objekt a všechny dílčí prvky. (Zděděno od ConfigurationElement) |
| ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) |
Určuje, zda zadaný prvek má být serializován, když je hierarchie objektu konfigurace serializována pro zadanou cílovou verzi .NET Framework. (Zděděno od ConfigurationSection) |
| ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) |
Určuje, zda má být zadaná vlastnost serializována, pokud je hierarchie objektu konfigurace serializována pro zadanou cílovou verzi .NET Framework. (Zděděno od ConfigurationSection) |
| ShouldSerializeSectionInTargetVersion(FrameworkName) |
Určuje, zda aktuální ConfigurationSection instance by měla být serializována, pokud je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi .NET Framework. (Zděděno od ConfigurationSection) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Upraví objekt tak ConfigurationElement , aby odebral všechny hodnoty, které by neměly být uloženy. (Zděděno od ConfigurationElement) |