MachineKeySection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
Uwagi dotyczące dziedziczenia
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.
Konstruktory
MachineKeySection() |
Inicjuje MachineKeySection nowe wystąpienie klasy przy użyciu ustawień domyślnych. |
Właściwości
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. (Odziedziczone po 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. (Odziedziczone po ConfigurationElement) |
ElementProperty |
ConfigurationElementProperty Pobiera obiekt reprezentujący ConfigurationElement sam obiekt. (Odziedziczone po ConfigurationElement) |
EvaluationContext |
ContextInformation Pobiera obiekt dla ConfigurationElement obiektu. (Odziedziczone po ConfigurationElement) |
HasContext |
Pobiera wartość wskazującą, czy CurrentConfiguration właściwość to |
Item[ConfigurationProperty] |
Pobiera lub ustawia właściwość lub atrybut tego elementu konfiguracji. (Odziedziczone po ConfigurationElement) |
Item[String] |
Pobiera lub ustawia właściwość, atrybut lub element podrzędny tego elementu konfiguracji. (Odziedziczone po ConfigurationElement) |
LockAllAttributesExcept |
Pobiera kolekcję zablokowanych atrybutów. (Odziedziczone po ConfigurationElement) |
LockAllElementsExcept |
Pobiera kolekcję zablokowanych elementów. (Odziedziczone po ConfigurationElement) |
LockAttributes |
Pobiera kolekcję zablokowanych atrybutów. (Odziedziczone po ConfigurationElement) |
LockElements |
Pobiera kolekcję zablokowanych elementów. (Odziedziczone po ConfigurationElement) |
LockItem |
Pobiera lub ustawia wartość wskazującą, czy element jest zablokowany. (Odziedziczone po ConfigurationElement) |
Properties |
Pobiera kolekcję właściwości. (Odziedziczone po ConfigurationElement) |
SectionInformation |
SectionInformation Pobiera obiekt, który zawiera niezstosowalne informacje i funkcje ConfigurationSection obiektu. (Odziedziczone po 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
DeserializeElement(XmlReader, Boolean) |
Odczytuje kod XML z pliku konfiguracji. (Odziedziczone po ConfigurationElement) |
DeserializeSection(XmlReader) |
Odczytuje kod XML z pliku konfiguracji. (Odziedziczone po ConfigurationSection) |
Equals(Object) |
Porównuje bieżące ConfigurationElement wystąpienie z określonym obiektem. (Odziedziczone po ConfigurationElement) |
GetHashCode() |
Pobiera unikatową wartość reprezentującą bieżące ConfigurationElement wystąpienie. (Odziedziczone po ConfigurationElement) |
GetRuntimeObject() |
Zwraca obiekt niestandardowy po przesłonięciu w klasie pochodnej. (Odziedziczone po ConfigurationSection) |
GetTransformedAssemblyString(String) |
Zwraca przekształconą wersję określonej nazwy zestawu. (Odziedziczone po ConfigurationElement) |
GetTransformedTypeString(String) |
Zwraca przekształconą wersję określonej nazwy typu. (Odziedziczone po ConfigurationElement) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
Init() |
ConfigurationElement Ustawia obiekt na stan początkowy. (Odziedziczone po ConfigurationElement) |
InitializeDefault() |
Służy do inicjowania domyślnego zestawu wartości dla ConfigurationElement obiektu. (Odziedziczone po ConfigurationElement) |
IsModified() |
Wskazuje, czy ten element konfiguracji został zmodyfikowany od czasu ostatniego zapisania lub załadowania podczas implementacji w klasie pochodnej. (Odziedziczone po ConfigurationSection) |
IsReadOnly() |
Pobiera wartość wskazującą, czy ConfigurationElement obiekt jest tylko do odczytu. (Odziedziczone po ConfigurationElement) |
ListErrors(IList) |
Dodaje błędy nieprawidłowej właściwości w tym ConfigurationElement obiekcie i we wszystkich podelementach do przekazanej listy. (Odziedziczone po ConfigurationElement) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany atrybut. (Odziedziczone po ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Pobiera wartość wskazującą, czy podczas deserializacji napotkano nieznany element. (Odziedziczone po ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Zgłasza wyjątek, gdy nie znaleziono wymaganej właściwości. (Odziedziczone po ConfigurationElement) |
PostDeserialize() |
Wywoływana po deserializacji. (Odziedziczone po ConfigurationElement) |
PreSerialize(XmlWriter) |
Wywoływane przed serializacji. (Odziedziczone po ConfigurationElement) |
Reset(ConfigurationElement) |
Resetuje stan ConfigurationElement wewnętrzny obiektu, w tym blokady i kolekcje właściwości. (Odziedziczone po ConfigurationElement) |
ResetModified() |
Resetuje wartość IsModified() metody w |
SerializeElement(XmlWriter, Boolean) |
Zapisuje zawartość tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej. (Odziedziczone po ConfigurationElement) |
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Tworzy ciąg XML zawierający nieskonwergentny widok ConfigurationSection obiektu jako pojedynczą sekcję do zapisu w pliku. (Odziedziczone po ConfigurationSection) |
SerializeToXmlElement(XmlWriter, String) |
Zapisuje zewnętrzne tagi tego elementu konfiguracji do pliku konfiguracji po zaimplementowaniu w klasie pochodnej. (Odziedziczone po ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Ustawia właściwość na określoną wartość. (Odziedziczone po ConfigurationElement) |
SetReadOnly() |
IsReadOnly() Ustawia właściwość obiektu ConfigurationElement i wszystkich podelementów. (Odziedziczone po 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. (Odziedziczone po 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. (Odziedziczone po 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. (Odziedziczone po ConfigurationSection) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modyfikuje obiekt, ConfigurationElement aby usunąć wszystkie wartości, które nie powinny być zapisywane. (Odziedziczone po ConfigurationElement) |