Sdílet prostřednictvím


MachineKeySection Třída

Definice

Definuje nastavení konfigurace, které řídí generování klíčů a algoritmy, které se používají při šifrování, dešifrování a operacích MAC (Message Authentication Code) při ověřování modelu Windows Forms, ověřování stavu zobrazení a izolaci aplikací 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 deklarativně zadat hodnoty 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 deklarativně zadat hodnoty 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 s kolizí s SHA1 microsoft doporučuje SHA256.

Následující příklad ukazuje, jak použít 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 k obsahu oddílu v konfiguračním souboru a upravovat ho MachineKey . Oddíl MachineKey je možné nakonfigurovat na úrovni počítače (Machine.config) nebo aplikace (Web.config) a řídí klíče a algoritmy, které se používají pro ověřování modelu Windows Forms, ověřování stavu zobrazení a izolaci aplikací ve stavu relace. Aby některé z těchto funkcí fungovaly v síti webových serverů (webová farma), DecryptionKey musí být atributy a ValidationKey oddílu MachineKey nakonfigurovány explicitně a shodně s platnými hodnotami klíčů. Hodnota AutoGenerate nefunguje u webových farem, protože závisí na kryptograficky náhodném tajném klíči, který je trvale uložen pomocí místní ochrany 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 zašifrovat tento oddíl pomocí chráněné konfigurace.

Konstruktory

MachineKeySection()

Inicializuje novou instanci třídy pomocí výchozího MachineKeySection nastavení.

Vlastnosti

ApplicationName

Získá nebo nastaví název aplikace.

CompatibilityMode

Získá nebo nastaví hodnotu, která určuje, zda upgradované šifrovací metody pro zobrazení stavu, které byly zavedeny po rozhraní .NET Framework verze 2.0 Service Pack 1 verze jsou použity.

CurrentConfiguration

Získá odkaz na instanci nejvyšší úrovně Configuration , která představuje hierarchii konfigurace, do které aktuální ConfigurationElement instance patří.

(Zděděno od ConfigurationElement)
DataProtectorType

Získá nebo nastaví název typu ochrany dat. Výchozí formát 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, kterým je klíč generován.

ElementInformation

Získá ElementInformation objekt, který obsahuje přizpůsobitelné informace a funkce objektu ConfigurationElement .

(Zděděno od ConfigurationElement)
ElementProperty

ConfigurationElementProperty Získá objekt, který představuje ConfigurationElement samotný objekt.

(Zděděno od ConfigurationElement)
EvaluationContext

ContextInformation Získá objekt pro ConfigurationElement objekt.

(Zděděno od ConfigurationElement)
HasContext

Získá hodnotu, která označuje, zda CurrentConfiguration je nullvlastnost .

(Zděděno od ConfigurationElement)
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 elementu konfigurace.

(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 hashovací algoritmus, který se používá k ověřování formulářů a zobrazení stavových dat.

ValidationAlgorithm

Získá nebo nastaví název algoritmu, který se používá k ověření ověřování formulářů a zobrazení dat stavu.

ValidationKey

Získá nebo nastaví klíč, který se používá k ověření ověřování formulářů a zobrazení dat stavu, nebo proces, podle kterého je klíč generován.

Metody

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á aktuální Type instanci.

(Zděděno od Object)
Init()

ConfigurationElement Nastaví objekt do počátečního stavu.

(Zděděno od ConfigurationElement)
InitializeDefault()

Slouží k inicializaci výchozí sady hodnot objektu 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 označující, zda ConfigurationElement objekt je jen pro čtení.

(Zděděno od ConfigurationElement)
ListErrors(IList)

Přidá do předaného seznamu chyby neplatné vlastnosti v tomto ConfigurationElement objektu a ve všech dílčích pomůcecích.

(Zděděno od ConfigurationElement)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnDeserializeUnrecognizedAttribute(String, String)

Získá hodnotu označující, zda je zjištěn neznámý atribut během deserializace.

(Zděděno od ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Získá hodnotu označující, zda neznámý prvek je nalezen během deserializace.

(Zděděno od ConfigurationElement)
OnRequiredPropertyNotFound(String)

Vyvolá výjimku, pokud není nalezena požadovaná vlastnost.

(Zděděno od ConfigurationElement)
PostDeserialize()

Volá se po deserializaci.

(Zděděno od ConfigurationElement)
PreSerialize(XmlWriter)

Volá se před serializací.

(Zděděno od ConfigurationElement)
Reset(ConfigurationElement)

Resetuje vnitřní stav objektu ConfigurationElement , včetně zámků a kolekcí vlastností.

(Zděděno od ConfigurationElement)
ResetModified()

Resetuje hodnotu IsModified() metody na false při implementaci v odvozené třídě.

(Zděděno od ConfigurationSection)
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í nesloučené 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 elementu konfigurace 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 objektu ConfigurationElement a všech dílčích elementů.

(Zděděno od ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Určuje, zda zadaný prvek by měl být serializován, když je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi rozhraní .NET Framework.

(Zděděno od ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Určuje, zda má být zadaná vlastnost serializována při hierarchii objektů konfigurace serializována pro zadanou cílovou verzi rozhraní .NET Framework.

(Zděděno od ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Určuje, zda aktuální ConfigurationSection instance by měla být serializována při hierarchii objektů konfigurace je serializována pro zadanou cílovou verzi rozhraní .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)

Platí pro

Viz také