MachineKeySection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет параметры конфигурации, управляющие созданием ключа и алгоритмами, используемыми при шифровании, расшифровке, а также операциями кода проверки подлинности сообщений (MAC) при проверке подлинности Windows Forms, проверке состояния просмотра и изоляции приложения состояния сеанса. Этот класс не наследуется.
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
- Наследование
Примеры
В примере в этом разделе показано, как декларативно указать значения для нескольких атрибутов раздела machineKey , к которому также можно обращаться как к членам MachineKeySection класса .
В следующем примере из файла конфигурации показано, как декларативно указать значения для раздела machineKey .
<system.web>
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
</system.web>
В этом примере используется SHA1. Из-за конфликта с SHA1 корпорация Майкрософт рекомендует использовать SHA256.
В следующем примере показано, как использовать класс в коде MachineKeySection .
#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
Комментарии
Класс MachineKeySection предоставляет способ программного доступа и изменения содержимого MachineKey раздела в файле конфигурации. Раздел MachineKey можно настроить на уровне компьютера (Machine.config) или приложения (Web.config) и управлять ключами и алгоритмами, используемыми для проверки подлинности Windows Forms, проверки состояния представления и изоляции приложения состояния сеанса. Чтобы какая-либо из этих функций работала в сети веб-серверов (веб-ферме), DecryptionKey атрибуты и ValidationKey раздела должны быть явно настроены MachineKey с допустимыми значениями ключей. Значение AutoGenerate не работает для веб-ферм, так как оно зависит от криптографически случайного секрета, который сохраняется с помощью локальной защиты компьютера и не будет одинаковым на нескольких компьютерах.
Примечания для тех, кто наследует этот метод
Если вы хотите указать ключи в этом разделе конфигурации, как это необходимо в сценариях веб-фермы, рекомендуется зашифровать этот раздел с помощью защищенной конфигурации.
Конструкторы
| MachineKeySection() |
Инициализирует новый экземпляр класса MachineKeySection с использованием параметров по умолчанию. |
Свойства
| ApplicationName |
Возвращает или задает имя приложения. |
| CompatibilityMode |
Получает или задает значение, указывающее, используются ли обновленные методы шифрования для просмотра состояния, введенные после выпуска платформы .NET Framework версии 2.0 с пакетом обновления 1. |
| CurrentConfiguration |
Возвращает ссылку на экземпляр Configuration верхнего уровня, представляющий иерархию конфигурации, к которой относится текущий экземпляр ConfigurationElement. (Унаследовано от ConfigurationElement) |
| DataProtectorType |
Получает или задает имя типа предохранителя данных. Значение по умолчанию — Empty. |
| Decryption |
Задает алгоритм шифрования, используемый для шифрования и расшифровки данных проверки подлинности форм. |
| DecryptionKey |
Получает или задает ключ, используемый для шифрования и расшифровки данных, или процесс, с помощью которого создается ключ. |
| ElementInformation |
Возвращает объект ElementInformation, содержащий неизменяемую информацию и функциональность объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
| ElementProperty |
Возвращает объект ConfigurationElementProperty, представляющий сам объект ConfigurationElement. (Унаследовано от ConfigurationElement) |
| EvaluationContext |
Возвращает объект ContextInformation для объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
| HasContext |
Возвращает значение, указывающее, имеет ли свойство CurrentConfiguration значение |
| Item[ConfigurationProperty] |
Возвращает или задает свойство или атрибут данного элемента конфигурации. (Унаследовано от ConfigurationElement) |
| Item[String] |
Получает или задает свойство, атрибут или дочерний элемент данного элемента конфигурации. (Унаследовано от ConfigurationElement) |
| LockAllAttributesExcept |
Возвращает коллекцию заблокированных атрибутов. (Унаследовано от ConfigurationElement) |
| LockAllElementsExcept |
Возвращает коллекцию заблокированных элементов. (Унаследовано от ConfigurationElement) |
| LockAttributes |
Возвращает коллекцию заблокированных атрибутов. (Унаследовано от ConfigurationElement) |
| LockElements |
Возвращает коллекцию заблокированных элементов. (Унаследовано от ConfigurationElement) |
| LockItem |
Возвращает или задает значение, указывающее, заблокирован ли элемент. (Унаследовано от ConfigurationElement) |
| Properties |
Возвращает коллекцию свойств. (Унаследовано от ConfigurationElement) |
| SectionInformation |
Возвращает объект SectionInformation, содержащий неизменяемую информацию и функциональность объекта ConfigurationSection. (Унаследовано от ConfigurationSection) |
| Validation |
Указывает алгоритм шифрования, используемый для проверки данных проверки подлинности с помощью форм и просмотра сведений о состоянии. |
| ValidationAlgorithm |
Получает или задает имя алгоритма, используемого для проверки данных проверки подлинности с помощью форм и просмотра сведений о состоянии. |
| ValidationKey |
Получает или задает ключ, используемый для проверки данных проверки подлинности с помощью форм и просмотра сведений о состоянии, или процесс, благодаря которому создается этот ключ. |
Методы
| DeserializeElement(XmlReader, Boolean) |
Считывает XML из файла конфигурации. (Унаследовано от ConfigurationElement) |
| DeserializeSection(XmlReader) |
Считывает XML из файла конфигурации. (Унаследовано от ConfigurationSection) |
| Equals(Object) |
Сравнивает текущий экземпляр ConfigurationElement с указанным объектом. (Унаследовано от ConfigurationElement) |
| GetHashCode() |
Получает уникальное значение, представляющее текущий экземпляр ConfigurationElement. (Унаследовано от ConfigurationElement) |
| GetRuntimeObject() |
Возвращает пользовательский объект при переопределении в производном классе. (Унаследовано от ConfigurationSection) |
| GetTransformedAssemblyString(String) |
Возвращает преобразованную версию указанного имени сборки. (Унаследовано от ConfigurationElement) |
| GetTransformedTypeString(String) |
Возвращает преобразованную версию указанного имени типа. (Унаследовано от ConfigurationElement) |
| GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
| Init() |
Задает объект ConfigurationElement в исходное состояние. (Унаследовано от ConfigurationElement) |
| InitializeDefault() |
Используется для инициализации набора значений по умолчанию для объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
| IsModified() |
При реализации в производном классе указывает, был ли изменен данный элемент конфигурации с момента последнего сохранения или загрузки. (Унаследовано от ConfigurationSection) |
| IsReadOnly() |
Получает значение, показывающее, является ли объект ConfigurationElement доступным только для чтения. (Унаследовано от ConfigurationElement) |
| ListErrors(IList) |
Добавляет ошибку "недействительное свойство" в данном объекте ConfigurationElement и всех его дочерних элементах к переданному списку. (Унаследовано от ConfigurationElement) |
| MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
| OnDeserializeUnrecognizedAttribute(String, String) |
Возвращает значение, указывающее, встретился ли неизвестный атрибут при десериализации. (Унаследовано от ConfigurationElement) |
| OnDeserializeUnrecognizedElement(String, XmlReader) |
Возвращает значение, указывающее, встретился ли неизвестный элемент при десериализации. (Унаследовано от ConfigurationElement) |
| OnRequiredPropertyNotFound(String) |
Выдает исключение, если требуемое свойство не найдено. (Унаследовано от ConfigurationElement) |
| PostDeserialize() |
Вызывается после десериализации. (Унаследовано от ConfigurationElement) |
| PreSerialize(XmlWriter) |
Вызывается до сериализации. (Унаследовано от ConfigurationElement) |
| Reset(ConfigurationElement) |
Восстанавливает внутреннее состояние объекта ConfigurationElement, включая блокировки и коллекции свойств. (Унаследовано от ConfigurationElement) |
| ResetModified() |
Переустанавливает значение метода IsModified() в |
| SerializeElement(XmlWriter, Boolean) |
Записывает содержание данного элемента конфигурации в файл конфигурации при реализации в производном классе. (Унаследовано от ConfigurationElement) |
| SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Создает XML-строку, содержащую разъединенное представление об объекте ConfigurationSection, как об отдельном разделе, записываемым в файл. (Унаследовано от ConfigurationSection) |
| SerializeToXmlElement(XmlWriter, String) |
Записывает внешние теги данного элемента конфигурации в файл конфигурации при реализации в производном классе. (Унаследовано от ConfigurationElement) |
| SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Задает для свойства указанное значение. (Унаследовано от ConfigurationElement) |
| SetReadOnly() |
Задает свойство IsReadOnly() для объекта ConfigurationElement и всех подчиненных элементов. (Унаследовано от ConfigurationElement) |
| ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) |
Указывает, следует ли сериализовать указанный элемент при сериализации иерархии объектов конфигурации для указанной целевой версии .NET Framework. (Унаследовано от ConfigurationSection) |
| ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) |
Указывает, следует ли сериализовать указанное свойство при сериализации иерархии объектов конфигурации для указанной целевой версии .NET Framework. (Унаследовано от ConfigurationSection) |
| ShouldSerializeSectionInTargetVersion(FrameworkName) |
Указывает, следует ли сериализовать текущий ConfigurationSection экземпляр при сериализации иерархии объектов конфигурации для указанной целевой версии .NET Framework. (Унаследовано от ConfigurationSection) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Изменяет объект ConfigurationElement для удаления всех значений, которые не должны сохраняться. (Унаследовано от ConfigurationElement) |