MachineKeySection Klass

Definition

Definierar konfigurationsinställningarna som styr nyckelgenereringen och algoritmerna som används i krypterings-, dekrypterings- och meddelandeautentiseringskodåtgärder (MAC) i Windows Forms autentisering, validering av visningstillstånd och programisolering av sessionstillstånd. Det går inte att ärva den här klassen.

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
Arv

Exempel

Exemplet i det här avsnittet visar hur du anger värden deklarativt för flera attribut i avsnittet machineKey , som också kan nås som medlemmar i MachineKeySection klassen.

I följande exempel från en konfigurationsfil visas hur du anger värden deklarativt för avsnittet machineKey .

<system.web>
  <machineKey validationKey="AutoGenerate,IsolateApps"
    decryptionKey="AutoGenerate,IsolateApps"
    validation="SHA1"/>
</system.web>

I det här exemplet används SHA1. På grund av kollisionsproblem med SHA1 rekommenderar Microsoft SHA256.

I följande exempel visas hur du MachineKeySection använder klassen i kod.

#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

Kommentarer

Klassen MachineKeySection ger ett sätt att programmatiskt komma åt och ändra innehållet MachineKey i avsnittet i konfigurationsfilen. Avsnittet MachineKey kan konfigureras på datornivån (Machine.config) eller programmet (Web.config) och styr de nycklar och algoritmer som används för Windows Forms autentisering, validering av visningstillstånd och programisolering av sessionstillstånd. För att någon av dessa funktioner ska fungera i ett nätverk av webbservrar (en webbgrupp) DecryptionKey måste avsnittets attribut och ValidationKey konfigureras MachineKey explicit och identiskt med giltiga nyckelvärden. Värdet AutoGenerate fungerar inte för webbgrupper eftersom det förlitar sig på en kryptografiskt slumpmässig hemlighet, som bevaras med hjälp av datorlokalt skydd och inte kommer att vara detsamma på fler än en dator.

Anteckningar till arvingar

Om du anger nycklar i det här konfigurationsavsnittet, vilket krävs i webbgruppsscenarier, rekommenderar vi att du krypterar det här avsnittet med hjälp av skyddad konfiguration.

Konstruktorer

Name Description
MachineKeySection()

Initierar en ny instans av MachineKeySection klassen med hjälp av standardinställningar.

Egenskaper

Name Description
ApplicationName

Hämtar eller anger namnet på programmet.

CompatibilityMode

Hämtar eller anger ett värde som anger om uppgraderade krypteringsmetoder för visningstillstånd som introducerades efter .NET Framework version 2.0 Service Pack 1 används.

CurrentConfiguration

Hämtar en referens till den översta instansen Configuration som representerar konfigurationshierarkin som den aktuella ConfigurationElement instansen tillhör.

(Ärvd från ConfigurationElement)
DataProtectorType

Hämtar eller anger namnet på dataskyddstypen. Standardvärdet är Empty.

Decryption

Anger krypteringsalgoritmen som används för att kryptera och dekryptera formulärautentiseringsdata.

DecryptionKey

Hämtar eller anger den nyckel som används för att kryptera och dekryptera data, eller processen som nyckeln genereras genom.

ElementInformation

Hämtar ett ElementInformation objekt som innehåller den icke-anpassningsbara informationen och funktionerna i ConfigurationElement objektet.

(Ärvd från ConfigurationElement)
ElementProperty

Hämtar objektet ConfigurationElementProperty som representerar ConfigurationElement själva objektet.

(Ärvd från ConfigurationElement)
EvaluationContext

Hämtar ContextInformation-objektet för ConfigurationElement-objektet.

(Ärvd från ConfigurationElement)
HasContext

Hämtar ett värde som anger om egenskapen CurrentConfiguration är null.

(Ärvd från ConfigurationElement)
Item[ConfigurationProperty]

Hämtar eller anger en egenskap eller ett attribut för det här konfigurationselementet.

(Ärvd från ConfigurationElement)
Item[String]

Hämtar eller anger en egenskap, ett attribut eller ett underordnat element i det här konfigurationselementet.

(Ärvd från ConfigurationElement)
LockAllAttributesExcept

Hämtar samlingen med låsta attribut.

(Ärvd från ConfigurationElement)
LockAllElementsExcept

Hämtar samlingen med låsta element.

(Ärvd från ConfigurationElement)
LockAttributes

Hämtar samlingen med låsta attribut.

(Ärvd från ConfigurationElement)
LockElements

Hämtar samlingen med låsta element.

(Ärvd från ConfigurationElement)
LockItem

Hämtar eller anger ett värde som anger om elementet är låst.

(Ärvd från ConfigurationElement)
Properties

Hämtar samlingen med egenskaper.

(Ärvd från ConfigurationElement)
SectionInformation

Hämtar ett SectionInformation objekt som innehåller den icke-anpassningsbara informationen och funktionerna i ConfigurationSection objektet.

(Ärvd från ConfigurationSection)
Validation

Anger hash-algoritmen som används för att verifiera formulärautentisering och visa tillståndsdata.

ValidationAlgorithm

Hämtar eller anger namnet på algoritmen som används för att verifiera formulärautentisering och visa tillståndsdata.

ValidationKey

Hämtar eller anger den nyckel som används för att verifiera formulärautentisering och visa tillståndsdata, eller processen som nyckeln genereras genom.

Metoder

Name Description
DeserializeElement(XmlReader, Boolean)

Läser XML från konfigurationsfilen.

(Ärvd från ConfigurationElement)
DeserializeSection(XmlReader)

Läser XML från konfigurationsfilen.

(Ärvd från ConfigurationSection)
Equals(Object)

Jämför den aktuella ConfigurationElement instansen med det angivna objektet.

(Ärvd från ConfigurationElement)
GetHashCode()

Hämtar ett unikt värde som representerar den aktuella ConfigurationElement instansen.

(Ärvd från ConfigurationElement)
GetRuntimeObject()

Returnerar ett anpassat objekt när det åsidosättas i en härledd klass.

(Ärvd från ConfigurationSection)
GetTransformedAssemblyString(String)

Returnerar den transformerade versionen av det angivna sammansättningsnamnet.

(Ärvd från ConfigurationElement)
GetTransformedTypeString(String)

Returnerar den transformerade versionen av det angivna typnamnet.

(Ärvd från ConfigurationElement)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Init()

Anger objektets ConfigurationElement ursprungliga tillstånd.

(Ärvd från ConfigurationElement)
InitializeDefault()

Används för att initiera en standarduppsättning med värden för ConfigurationElement objektet.

(Ärvd från ConfigurationElement)
IsModified()

Anger om det här konfigurationselementet har ändrats sedan det senast sparades eller lästes in när det implementerades i en härledd klass.

(Ärvd från ConfigurationSection)
IsReadOnly()

Hämtar ett värde som anger om objektet ConfigurationElement är skrivskyddat.

(Ärvd från ConfigurationElement)
ListErrors(IList)

Lägger till felen invalid-property i det här ConfigurationElement objektet, och i alla underelement, i den överförda listan.

(Ärvd från ConfigurationElement)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnDeserializeUnrecognizedAttribute(String, String)

Hämtar ett värde som anger om ett okänt attribut påträffas under deserialiseringen.

(Ärvd från ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Hämtar ett värde som anger om ett okänt element påträffas under deserialiseringen.

(Ärvd från ConfigurationElement)
OnRequiredPropertyNotFound(String)

Utlöser ett undantag när en obligatorisk egenskap inte hittas.

(Ärvd från ConfigurationElement)
PostDeserialize()

Anropas efter deserialisering.

(Ärvd från ConfigurationElement)
PreSerialize(XmlWriter)

Anropas före serialisering.

(Ärvd från ConfigurationElement)
Reset(ConfigurationElement)

Återställer objektets interna tillstånd ConfigurationElement , inklusive låsen och egenskapssamlingarna.

(Ärvd från ConfigurationElement)
ResetModified()

Återställer värdet för metoden till IsModified() när den false implementeras i en härledd klass.

(Ärvd från ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Skriver innehållet i det här konfigurationselementet till konfigurationsfilen när det implementeras i en härledd klass.

(Ärvd från ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Skapar en XML-sträng som innehåller en icke-komprimerad vy av ConfigurationSection objektet som ett enda avsnitt för att skriva till en fil.

(Ärvd från ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Skriver de yttre taggarna för det här konfigurationselementet till konfigurationsfilen när det implementeras i en härledd klass.

(Ärvd från ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Anger en egenskap till det angivna värdet.

(Ärvd från ConfigurationElement)
SetReadOnly()

Anger egenskapen IsReadOnly() för ConfigurationElement objektet och alla underelement.

(Ärvd från ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Anger om det angivna elementet ska serialiseras när konfigurationsobjekthierarkin serialiseras för den angivna målversionen av .NET Framework.

(Ärvd från ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Anger om den angivna egenskapen ska serialiseras när konfigurationsobjekthierarkin serialiseras för den angivna målversionen av .NET Framework.

(Ärvd från ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Anger om den aktuella ConfigurationSection-instansen ska serialiseras när konfigurationsobjekthierarkin serialiseras för den angivna målversionen av .NET Framework.

(Ärvd från ConfigurationSection)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Ändrar objektet ConfigurationElement för att ta bort alla värden som inte ska sparas.

(Ärvd från ConfigurationElement)

Gäller för

Se även