Udostępnij przez


MachineKeySection Klasa

Definicja

Definiuje ustawienia konfiguracji kontrolujące generowanie kluczy i algorytmy używane w operacjach szyfrowania, odszyfrowywania i kodu uwierzytelniania komunikatów (MAC) w uwierzytelnianiu formularzy systemu Windows, weryfikacji stanu wyświetlania i izolacji aplikacji stanu sesji. Klasa ta nie może być dziedziczona.

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
Dziedziczenie

Przykłady

W przykładzie w tej sekcji pokazano, jak deklaratywnie określić wartości dla kilku atrybutów sekcji machineKey , do których można również uzyskać dostęp jako elementy członkowskie MachineKeySection klasy.

Poniższy przykład z pliku konfiguracji pokazuje, jak określić wartości deklaratywnie dla sekcji machineKey .

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

W tym przykładzie użyto algorytmu SHA1. Ze względu na problemy z kolizją z sha1 firma Microsoft zaleca sha256.

W poniższym przykładzie pokazano, jak używać MachineKeySection klasy w kodzie.

#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

Uwagi

Klasa MachineKeySection zapewnia sposób programowego uzyskiwania dostępu i modyfikowania zawartości MachineKey sekcji w pliku konfiguracji. MachineKey Sekcję można skonfigurować na poziomie maszyny (Machine.config) lub aplikacji (Web.config) oraz kontrolować klucze i algorytmy używane do uwierzytelniania formularzy systemu Windows, walidacji stanu wyświetlania i izolacji aplikacji stanu sesji. Aby każda z tych funkcji działała w sieci serwerów sieci Web (farmy sieci Web), DecryptionKey atrybuty MachineKey i ValidationKey sekcji muszą być jawnie skonfigurowane i identyczne z prawidłowymi wartościami kluczy. Wartość AutoGenerate nie działa w przypadku farm sieci Web, ponieważ opiera się na kryptograficznie losowym wpisie tajnym, który jest utrwalany przy użyciu ochrony lokalnej komputera i nie będzie taki sam na więcej niż jednym komputerze.

Notatki dla spadkobierców

Jeśli chcesz określić klucze w tej sekcji konfiguracji, zgodnie z wymaganiami w scenariuszach farmy sieci Web, zaleca się szyfrowanie tej sekcji przy użyciu konfiguracji chronionej.

Konstruktorów

Nazwa Opis
MachineKeySection()

Inicjuje MachineKeySection nowe wystąpienie klasy przy użyciu ustawień domyślnych.

Właściwości

Nazwa Opis
ApplicationName

Pobiera lub ustawia nazwę aplikacji.

CompatibilityMode

Pobiera lub ustawia wartość określającą, czy są używane uaktualnione metody szyfrowania dla stanu wyświetlania wprowadzone po wydaniu dodatku Service Pack 1 programu .NET Framework w wersji 2.0.

CurrentConfiguration

Pobiera odwołanie do wystąpienia najwyższego poziomu Configuration , które reprezentuje hierarchię konfiguracji, do którego należy bieżące ConfigurationElement wystąpienie.

(Dziedziczone od ConfigurationElement)
DataProtectorType

Pobiera lub ustawia nazwę typu ochrony danych. Wartość domyślna to Empty.

Decryption

Określa algorytm szyfrowania używany do szyfrowania i odszyfrowywania danych uwierzytelniania formularzy.

DecryptionKey

Pobiera lub ustawia klucz używany do szyfrowania i odszyfrowywania danych lub procesu, za pomocą którego jest generowany klucz.

ElementInformation

ElementInformation Pobiera obiekt, który zawiera niezstosowalne informacje i funkcje ConfigurationElement obiektu.

(Dziedziczone od ConfigurationElement)
ElementProperty

ConfigurationElementProperty Pobiera obiekt reprezentujący ConfigurationElement sam obiekt.

(Dziedziczone od ConfigurationElement)
EvaluationContext

ContextInformation Pobiera obiekt dla ConfigurationElement obiektu.

(Dziedziczone od ConfigurationElement)
HasContext

Pobiera wartość wskazującą, czy CurrentConfiguration właściwość to null.

(Dziedziczone od ConfigurationElement)
Item[ConfigurationProperty]

Pobiera lub ustawia właściwość lub atrybut tego elementu konfiguracji.

(Dziedziczone od ConfigurationElement)
Item[String]

Pobiera lub ustawia właściwość, atrybut lub element podrzędny tego elementu konfiguracji.

(Dziedziczone od ConfigurationElement)
LockAllAttributesExcept

Pobiera kolekcję zablokowanych atrybutów.

(Dziedziczone od ConfigurationElement)
LockAllElementsExcept

Pobiera kolekcję zablokowanych elementów.

(Dziedziczone od ConfigurationElement)
LockAttributes

Pobiera kolekcję zablokowanych atrybutów.

(Dziedziczone od ConfigurationElement)
LockElements

Pobiera kolekcję zablokowanych elementów.

(Dziedziczone od ConfigurationElement)
LockItem

Pobiera lub ustawia wartość wskazującą, czy element jest zablokowany.

(Dziedziczone od ConfigurationElement)
Properties

Pobiera kolekcję właściwości.

(Dziedziczone od ConfigurationElement)
SectionInformation

SectionInformation Pobiera obiekt, który zawiera niezstosowalne informacje i funkcje ConfigurationSection obiektu.

(Dziedziczone od ConfigurationSection)
Validation

Określa algorytm wyznaczania skrótów używany do sprawdzania poprawności uwierzytelniania formularzy i wyświetlania danych stanu.

ValidationAlgorithm

Pobiera lub ustawia nazwę algorytmu używanego do weryfikowania uwierzytelniania formularzy i wyświetlania danych stanu.

ValidationKey

Pobiera lub ustawia klucz używany do weryfikowania uwierzytelniania formularzy i wyświetlania danych o stanie lub procesu, za pomocą którego jest generowany klucz.

Metody

Nazwa Opis
DeserializeElement(XmlReader, Boolean)

Odczytuje kod XML z pliku konfiguracji.

(Dziedziczone od ConfigurationElement)
DeserializeSection(XmlReader)

Odczytuje kod XML z pliku konfiguracji.

(Dziedziczone od ConfigurationSection)
Equals(Object)

Porównuje bieżące ConfigurationElement wystąpienie z określonym obiektem.

(Dziedziczone od ConfigurationElement)
GetHashCode()

Pobiera unikatową wartość reprezentującą bieżące ConfigurationElement wystąpienie.

(Dziedziczone od ConfigurationElement)
GetRuntimeObject()

Zwraca obiekt niestandardowy po przesłonięciu w klasie pochodnej.

(Dziedziczone od ConfigurationSection)
GetTransformedAssemblyString(String)

Zwraca przekształconą wersję określonej nazwy zestawu.

(Dziedziczone od ConfigurationElement)
GetTransformedTypeString(String)

Zwraca przekształconą wersję określonej nazwy typu.

(Dziedziczone od ConfigurationElement)
GetType()

Type Pobiera bieżące wystąpienie.

(Dziedziczone od Object)
Init()

ConfigurationElement Ustawia obiekt na stan początkowy.

(Dziedziczone od ConfigurationElement)
InitializeDefault()

Służy do inicjowania domyślnego zestawu wartości dla ConfigurationElement obiektu.

(Dziedziczone od ConfigurationElement)
IsModified()

Wskazuje, czy ten element konfiguracji został zmodyfikowany od czasu ostatniego zapisania lub załadowania podczas implementacji w klasie pochodnej.

(Dziedziczone od ConfigurationSection)
IsReadOnly()

Pobiera wartość wskazującą, czy ConfigurationElement obiekt jest tylko do odczytu.

(Dziedziczone od ConfigurationElement)
ListErrors(IList)

Dodaje błędy nieprawidłowej właściwości w tym ConfigurationElement obiekcie i we wszystkich podelementach do przekazanej listy.

(Dziedziczone od ConfigurationElement)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Dziedziczone od Object)
OnDeserializeUnrecognizedAttribute(String, String)

Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany atrybut.

(Dziedziczone od ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany element.

(Dziedziczone od ConfigurationElement)
OnRequiredPropertyNotFound(String)

Zgłasza wyjątek, gdy nie znaleziono wymaganej właściwości.

(Dziedziczone od ConfigurationElement)
PostDeserialize()

Wywoływana po deserializacji.

(Dziedziczone od ConfigurationElement)
PreSerialize(XmlWriter)

Wywoływane przed serializacji.

(Dziedziczone od ConfigurationElement)
Reset(ConfigurationElement)

Resetuje stan ConfigurationElement wewnętrzny obiektu, w tym blokady i kolekcje właściwości.

(Dziedziczone od ConfigurationElement)
ResetModified()

Resetuje wartość IsModified() metody w false przypadku implementacji w klasie pochodnej.

(Dziedziczone od ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Zapisuje zawartość tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej.

(Dziedziczone od ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Tworzy ciąg XML zawierający nieskonwergentny widok ConfigurationSection obiektu jako pojedynczą sekcję do zapisu w pliku.

(Dziedziczone od ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Zapisuje zewnętrzne tagi tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej.

(Dziedziczone od ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Ustawia właściwość na określoną wartość.

(Dziedziczone od ConfigurationElement)
SetReadOnly()

IsReadOnly() Ustawia właściwość obiektu ConfigurationElement i wszystkich podelementów.

(Dziedziczone od ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Wskazuje, czy określony element powinien być serializowany, gdy hierarchia obiektów konfiguracji jest serializowana dla określonej wersji docelowej programu .NET Framework.

(Dziedziczone od ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Wskazuje, czy określona właściwość powinna być serializowana, gdy hierarchia obiektów konfiguracji jest serializowana dla określonej wersji docelowej programu .NET Framework.

(Dziedziczone od ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Wskazuje, czy bieżące ConfigurationSection wystąpienie powinno być serializowane, gdy hierarchia obiektów konfiguracji jest serializowana dla określonej wersji docelowej programu .NET Framework.

(Dziedziczone od ConfigurationSection)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Dziedziczone od Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modyfikuje obiekt, ConfigurationElement aby usunąć wszystkie wartości, które nie powinny być zapisywane.

(Dziedziczone od ConfigurationElement)

Dotyczy

Zobacz także