MachineKeySection Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define as configurações que controlam a geração de chave e algoritmos usados na criptografia, na descriptografia e em operações de MAC (Message Authentication Code) na autenticação do Windows Forms, na validação do estado de exibição e no isolamento do estado de sessão do aplicativo. Essa classe não pode ser herdada.
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
- Herança
Exemplos
O exemplo nesta seção demonstra como especificar valores declarativamente para vários atributos da seção machineKey , que também podem ser acessados como membros da MachineKeySection classe .
O exemplo a seguir de um arquivo de configuração mostra como especificar valores declarativamente para a seção machineKey .
<system.web>
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
</system.web>
Este exemplo usa SHA1. Em razão de problemas de colisão com SHA1, a Microsoft recomenda SHA256.
O exemplo a seguir demonstra como usar a MachineKeySection classe no código.
#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
Comentários
A MachineKeySection classe fornece uma maneira de acessar e modificar programaticamente o conteúdo da MachineKey
seção no arquivo de configuração. A MachineKey
seção pode ser configurada no nível do computador (Machine.config) ou do aplicativo (Web.config) e controla as chaves e algoritmos usados para autenticação do Windows Forms, validação de estado de exibição e isolamento de aplicativo de estado de sessão. Para que qualquer um desses recursos funcione em uma rede de servidores Web (um farm da Web), os DecryptionKey
atributos e ValidationKey
da MachineKey
seção devem ser configurados de forma explícita e idêntica com valores de chave válidos. O AutoGenerate
valor não funciona para farms da Web, pois se baseia em um segredo criptograficamente aleatório, que é persistente usando a proteção local do computador e não será o mesmo em mais de um computador.
Notas aos Herdeiros
Se você especificar chaves nesta seção de configuração, como é necessário em cenários de farm da Web, é recomendável criptografar esta seção usando a configuração protegida.
Construtores
MachineKeySection() |
Inicializa uma nova instância da classe MachineKeySection usando as configurações padrão. |
Propriedades
ApplicationName |
Obtém ou define o nome do aplicativo. |
CompatibilityMode |
Obtém ou define um valor que especifica se serão usados os métodos de criptografia atualizados para o estado de exibição que foram introduzidos após a liberação do .NET Framework versão 2.0 Service Pack 1. |
CurrentConfiguration |
Obtém uma referência para a instância Configuration de nível superior que representa a hierarquia de configuração à qual a instância atual ConfigurationElement pertence. (Herdado de ConfigurationElement) |
DataProtectorType |
Obtém ou define o nome do tipo de protetor de dados. O padrão é Empty. |
Decryption |
Especifica o algoritmo de criptografia que é usado para criptografar e descriptografar dados de autenticação de formulários. |
DecryptionKey |
Obtém ou define a chave usada para criptografar e descriptografar dados ou o processo pelo qual a chave é gerada. |
ElementInformation |
Obtém um objeto ElementInformation que contém as informações não personalizáveis e a funcionalidade do objeto ConfigurationElement. (Herdado de ConfigurationElement) |
ElementProperty |
Obtém o objeto ConfigurationElementProperty que representa o próprio objeto ConfigurationElement. (Herdado de ConfigurationElement) |
EvaluationContext |
Obtém o objeto ContextInformation para o objeto ConfigurationElement. (Herdado de ConfigurationElement) |
HasContext |
Obtém um valor que indica se a propriedade CurrentConfiguration é |
Item[ConfigurationProperty] |
Obtém ou define uma propriedade ou um atributo desse elemento de configuração. (Herdado de ConfigurationElement) |
Item[String] |
Obtém ou define uma propriedade, atributo ou elemento filho desse elemento de configuração. (Herdado de ConfigurationElement) |
LockAllAttributesExcept |
Obtém a coleção de atributos bloqueados. (Herdado de ConfigurationElement) |
LockAllElementsExcept |
Obtém a coleção de elementos bloqueados. (Herdado de ConfigurationElement) |
LockAttributes |
Obtém a coleção de atributos bloqueados. (Herdado de ConfigurationElement) |
LockElements |
Obtém a coleção de elementos bloqueados. (Herdado de ConfigurationElement) |
LockItem |
Obtém ou define um valor que indica se o elemento está bloqueado. (Herdado de ConfigurationElement) |
Properties |
Obtém a coleção de propriedades. (Herdado de ConfigurationElement) |
SectionInformation |
Obtém um objeto SectionInformation que contém as informações não personalizáveis e a funcionalidade do objeto ConfigurationSection. (Herdado de ConfigurationSection) |
Validation |
Especifica o algoritmo de hash que é usado para a validação de dados de estado de exibição e autenticação de formulários. |
ValidationAlgorithm |
Obtém ou define o nome do algoritmo usado para validar a autenticação de formulários e exibir os dados de estado. |
ValidationKey |
Obtém ou define a chave que é usada para validar a autenticação de formulários e exibir dados de estado ou o processo pelo qual a chave é gerada. |
Métodos
DeserializeElement(XmlReader, Boolean) |
Lê o XML do arquivo de configuração. (Herdado de ConfigurationElement) |
DeserializeSection(XmlReader) |
Lê o XML do arquivo de configuração. (Herdado de ConfigurationSection) |
Equals(Object) |
Compara a instância ConfigurationElement atual com o objeto especificado. (Herdado de ConfigurationElement) |
GetHashCode() |
Obtém um valor exclusivo que representa a instância ConfigurationElement atual. (Herdado de ConfigurationElement) |
GetRuntimeObject() |
Retorna um objeto personalizado quando substituído em uma classe derivada. (Herdado de ConfigurationSection) |
GetTransformedAssemblyString(String) |
Retorna a versão transformada do nome do assembly especificado. (Herdado de ConfigurationElement) |
GetTransformedTypeString(String) |
Retorna a versão transformada do nome do tipo especificado. (Herdado de ConfigurationElement) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
Init() |
Define o objeto ConfigurationElement para seu estado inicial. (Herdado de ConfigurationElement) |
InitializeDefault() |
Usado para inicializar um conjunto padrão de valores para o objeto ConfigurationElement. (Herdado de ConfigurationElement) |
IsModified() |
Indica se este elemento de configuração foi modificado desde a última vez em que foi salvo ou carregado quando implementado em uma classe derivada. (Herdado de ConfigurationSection) |
IsReadOnly() |
Obtém um valor que indica se o objeto ConfigurationElement é somente leitura. (Herdado de ConfigurationElement) |
ListErrors(IList) |
Adiciona os erros de propriedade inválida deste objeto ConfigurationElement e de todos os subelementos à lista passada. (Herdado de ConfigurationElement) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Obtém um valor que indica se um atributo desconhecido é encontrado durante a desserialização. (Herdado de ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Obtém um valor que indica se um elemento desconhecido é encontrado durante a desserialização. (Herdado de ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Gera uma exceção quando uma propriedade necessária não é encontrada. (Herdado de ConfigurationElement) |
PostDeserialize() |
Chamado depois da desserialização. (Herdado de ConfigurationElement) |
PreSerialize(XmlWriter) |
Chamado antes da serialização. (Herdado de ConfigurationElement) |
Reset(ConfigurationElement) |
Redefine o estado interno do objeto ConfigurationElement, incluindo os bloqueios e as coleções de propriedades. (Herdado de ConfigurationElement) |
ResetModified() |
Redefine o valor do método IsModified() para |
SerializeElement(XmlWriter, Boolean) |
Grava o conteúdo desse elemento de configuração no arquivo de configuração quando implementado em uma classe derivada. (Herdado de ConfigurationElement) |
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Cria uma cadeia de caracteres XML que contém uma exibição não mesclada do objeto ConfigurationSection como uma única seção a ser gravada em um arquivo. (Herdado de ConfigurationSection) |
SerializeToXmlElement(XmlWriter, String) |
Grava as marcas externas desse elemento de configuração no arquivo de configuração quando implementado em uma classe derivada. (Herdado de ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Define uma propriedade para o valor especificado. (Herdado de ConfigurationElement) |
SetReadOnly() |
Define a propriedade IsReadOnly() para o objeto ConfigurationElement e para todos os subelementos. (Herdado de ConfigurationElement) |
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName) |
Indica se o elemento especificado deve ser serializado quando a hierarquia de objetos de configuração é serializada para a versão de destino especificada do .NET Framework. (Herdado de ConfigurationSection) |
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement) |
Indica se a propriedade especificada deve ser serializada quando a hierarquia de objetos de configuração é serializada para a versão de destino especificada do .NET Framework. (Herdado de ConfigurationSection) |
ShouldSerializeSectionInTargetVersion(FrameworkName) |
Indica se a instância atual ConfigurationSection deve ser serializada quando a hierarquia de objetos de configuração é serializada para a versão de destino especificada do .NET Framework. (Herdado de ConfigurationSection) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modifica o objeto ConfigurationElement para remover todos os valores que não devem ser salvos. (Herdado de ConfigurationElement) |