MachineKeySection Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define as definições de configuração que controlam a geração de chaves e os algoritmos usados nas operações de encriptação, desencriptação e código de autenticação de mensagens (MAC) na autenticação do Windows Forms, validação de estado de visualização e isolamento de aplicações em estado de sessão. Esta 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 secção demonstra como especificar valores declarativamente para vários atributos da secção machineKey , que também podem ser acedidos como membros da MachineKeySection classe.
O exemplo seguinte de um ficheiro de configuração mostra como especificar valores declarativamente para a secção machineKey .
<system.web>
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps"
validation="SHA1"/>
</system.web>
Este exemplo utiliza o SHA1. Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
O exemplo seguinte demonstra como usar a MachineKeySection classe em 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
Observações
A MachineKeySection classe fornece uma forma de aceder programaticamente e modificar o conteúdo da MachineKey secção no ficheiro de configuração. A secção MachineKey pode ser configurada ao nível da máquina (Machine.config) ou da aplicação (Web.config) e controla as chaves e algoritmos usados para autenticação Windows Forms, validação do estado de visualização e isolamento da aplicação no estado da sessão. Para que qualquer uma destas funcionalidades funcione numa rede de servidores Web (uma fazenda Web), os DecryptionKey atributos e ValidationKey da MachineKey secção devem ser configurados de forma explícita e idêntica com valores-chave válidos. O AutoGenerate valor não funciona para webfarms, porque depende de um segredo criptograficamente aleatório, que é mantido através da proteção local da máquina e não será o mesmo em mais do que um computador.
Notas para Herdeiros
Se quiser especificar chaves nesta secção de configuração, como é exigido em cenários de Web-farm, recomenda-se que encripte esta secção usando configuração protegida.
Construtores
| Name | Description |
|---|---|
| MachineKeySection() |
Inicializa uma nova instância da MachineKeySection classe usando as definições padrão. |
Propriedades
| Name | Description |
|---|---|
| ApplicationName |
Obtém ou define o nome da aplicação. |
| CompatibilityMode |
Recebe ou define um valor que especifica se são utilizados métodos de encriptação atualizados para o estado da visualização, introduzidos após o lançamento do Service Pack 1 do .NET Framework versão 2.0. |
| CurrentConfiguration |
Obtém uma referência à instância de topo Configuration que representa a hierarquia de configuração a que pertence a instância atual ConfigurationElement . (Herdado de ConfigurationElement) |
| DataProtectorType |
Obtém ou define o nome do tipo de protetor de dados. A predefinição é Empty. |
| Decryption |
Especifica o algoritmo de encriptação utilizado para encriptar e desencriptar dados de autenticação de formulários. |
| DecryptionKey |
Obtém ou define a chave usada para encriptar e desencriptar dados, ou o processo pelo qual a chave é gerada. |
| ElementInformation |
Obtém um ElementInformation objeto que contém a informação e funcionalidade não personalizáveis do ConfigurationElement objeto. (Herdado de ConfigurationElement) |
| ElementProperty |
Obtém o ConfigurationElementProperty objeto que representa o ConfigurationElement próprio objeto. (Herdado de ConfigurationElement) |
| EvaluationContext |
Obtém o ContextInformation objeto para o ConfigurationElement objeto. (Herdado de ConfigurationElement) |
| HasContext |
Obtém um valor que indica se a CurrentConfiguration propriedade é |
| Item[ConfigurationProperty] |
Obtém ou define uma propriedade ou atributo deste elemento de configuração. (Herdado de ConfigurationElement) |
| Item[String] |
Obtém ou define uma propriedade, atributo ou elemento filho deste 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 |
Recebe ou define um valor que indica se o elemento está bloqueado. (Herdado de ConfigurationElement) |
| Properties |
Recebe a coleção de propriedades. (Herdado de ConfigurationElement) |
| SectionInformation |
Obtém um SectionInformation objeto que contém a informação e funcionalidade não personalizáveis do ConfigurationSection objeto. (Herdado de ConfigurationSection) |
| Validation |
Especifica o algoritmo de hash utilizado para validar formulários, autenticação e dados de estado de visualização. |
| ValidationAlgorithm |
Obtém ou define o nome do algoritmo utilizado para validar a autenticação dos formulários e visualizar os dados de estado. |
| ValidationKey |
Obtém ou define a chave usada para validar a autenticação dos formulários e visualizar os dados de estado, ou o processo pelo qual a chave é gerada. |
Métodos
| Name | Description |
|---|---|
| DeserializeElement(XmlReader, Boolean) |
Lê XML a partir do ficheiro de configuração. (Herdado de ConfigurationElement) |
| DeserializeSection(XmlReader) |
Lê XML a partir do ficheiro de configuração. (Herdado de ConfigurationSection) |
| Equals(Object) |
Compara a instância atual ConfigurationElement com o objeto especificado. (Herdado de ConfigurationElement) |
| GetHashCode() |
Obtém um valor único que representa a instância atual ConfigurationElement . (Herdado de ConfigurationElement) |
| GetRuntimeObject() |
Devolve um objeto personalizado quando sobrescrito numa classe derivada. (Herdado de ConfigurationSection) |
| GetTransformedAssemblyString(String) |
Devolve a versão transformada do nome da assembleia especificado. (Herdado de ConfigurationElement) |
| GetTransformedTypeString(String) |
Devolve 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 ConfigurationElement objeto para o seu estado inicial. (Herdado de ConfigurationElement) |
| InitializeDefault() |
Usado para inicializar um conjunto padrão de valores para o ConfigurationElement objeto. (Herdado de ConfigurationElement) |
| IsModified() |
Indica se este elemento de configuração foi modificado desde a última vez que foi guardado ou carregado quando implementado numa classe derivada. (Herdado de ConfigurationSection) |
| IsReadOnly() |
Recebe um valor que indica se o ConfigurationElement objeto é apenas de leitura. (Herdado de ConfigurationElement) |
| ListErrors(IList) |
Adiciona os erros de propriedades inválidas neste ConfigurationElement objeto, e em todos os subelementos, à lista passada. (Herdado de ConfigurationElement) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnDeserializeUnrecognizedAttribute(String, String) |
Recebe 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) |
Lança uma exceção quando uma propriedade exigida não é encontrada. (Herdado de ConfigurationElement) |
| PostDeserialize() |
Chamada após desserialização. (Herdado de ConfigurationElement) |
| PreSerialize(XmlWriter) |
Chamado antes da serialização. (Herdado de ConfigurationElement) |
| Reset(ConfigurationElement) |
Reinicia o estado interno do ConfigurationElement objeto, incluindo os bloqueios e as coleções de propriedades. (Herdado de ConfigurationElement) |
| ResetModified() |
Redefine o valor do IsModified() método para |
| SerializeElement(XmlWriter, Boolean) |
Escreve o conteúdo deste elemento de configuração no ficheiro de configuração quando implementado numa classe derivada. (Herdado de ConfigurationElement) |
| SerializeSection(ConfigurationElement, String, ConfigurationSaveMode) |
Cria uma string XML contendo uma vista não fundida do ConfigurationSection objeto como uma única secção para escrever num ficheiro. (Herdado de ConfigurationSection) |
| SerializeToXmlElement(XmlWriter, String) |
Escreve as etiquetas exteriores deste elemento de configuração no ficheiro de configuração quando implementado numa classe derivada. (Herdado de ConfigurationElement) |
| SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Define uma propriedade para o valor especificado. (Herdado de ConfigurationElement) |
| SetReadOnly() |
Define a IsReadOnly() propriedade para o ConfigurationElement objeto e 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 alvo 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 alvo 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 alvo especificada do .NET Framework. (Herdado de ConfigurationSection) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modifica o ConfigurationElement objeto para remover todos os valores que não deveriam ser guardados. (Herdado de ConfigurationElement) |