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

Возвращает или задает значение, указывающее, используются ли обновленные методы шифрования для состояния представления, введенного после выпуска пакета обновления 1 для .NET Framework версии 2.0.

CurrentConfiguration

Возвращает ссылку на экземпляр верхнего уровня Configuration , представляющий иерархию конфигурации, к которой принадлежит текущий ConfigurationElement экземпляр.

(Унаследовано от ConfigurationElement)
DataProtectorType

Возвращает или задает имя типа защиты данных. Значение по умолчанию — Empty.

Decryption

Задает алгоритм шифрования, используемый для шифрования и расшифровки данных проверки подлинности форм.

DecryptionKey

Возвращает или задает ключ, используемый для шифрования и расшифровки данных, или процесса, с помощью которого создается ключ.

ElementInformation

ElementInformation Возвращает объект, содержащий не настраиваемую информацию и функциональные возможности ConfigurationElement объекта.

(Унаследовано от ConfigurationElement)
ElementProperty

ConfigurationElementProperty Возвращает объект, представляющий ConfigurationElement сам объект.

(Унаследовано от ConfigurationElement)
EvaluationContext

Возвращает объект ContextInformation для объекта ConfigurationElement.

(Унаследовано от ConfigurationElement)
HasContext

Возвращает значение, указывающее, является CurrentConfigurationли null свойство.

(Унаследовано от ConfigurationElement)
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() метода false на момент реализации в производном классе.

(Унаследовано от ConfigurationSection)
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)

Применяется к

См. также раздел