Share via


MachineKeySection Sınıf

Tanım

Windows Forms kimlik doğrulaması, görünüm durumu doğrulaması ve oturum durumu uygulama yalıtımında şifreleme, şifre çözme ve ileti kimlik doğrulama kodu (MAC) işlemlerinde kullanılan anahtar oluşturma ve algoritmaları denetleye yapılandırma ayarlarını tanımlar. Bu sınıf devralınamaz.

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
Devralma

Örnekler

Bu bölümdeki örnekte machineKey bölümünün çeşitli öznitelikleri için değerlerin bildirimli olarak nasıl belirtileceği gösterilmektedir. Bu özniteliklere sınıfın MachineKeySection üyeleri olarak da erişilebilir.

Bir yapılandırma dosyasındaki aşağıdaki örnekte machineKey bölümü için değerleri bildirimli olarak belirtme gösterilmektedir.

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

Bu örnekte SHA1 kullanılır. SHA1 ile ilgili çakışma sorunları nedeniyle Microsoft SHA256'yı önerir.

Aşağıdaki örnekte kodda sınıfının nasıl kullanılacağı MachineKeySection gösterilmektedir.

#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

Açıklamalar

sınıfı, MachineKeySection yapılandırma dosyasındaki bölümün MachineKey içeriğine program aracılığıyla erişmek ve bunları değiştirmek için bir yol sağlar. Bölüm MachineKey makine (Machine.config) veya uygulama (Web.config) düzeyinde yapılandırılabilir ve Windows Forms kimlik doğrulaması, görünüm durumu doğrulaması ve oturum durumu uygulama yalıtımı için kullanılan anahtarları ve algoritmaları denetler. Bu özelliklerden herhangi birinin bir Web sunucuları ağı (web grubu) DecryptionKey üzerinde çalışması için bölümün MachineKey ve ValidationKey özniteliklerinin geçerli anahtar değerleriyle açıkça ve aynı şekilde yapılandırılması gerekir. AutoGenerate Değer Web grupları için çalışmaz, çünkü makine yerel koruması kullanılarak kalıcı hale gelen ve birden fazla bilgisayarda aynı olmayacak olan şifreli rastgele bir gizli diziye dayanır.

Devralanlara Notlar

Web grubu senaryolarında gerektiği gibi, bu yapılandırma bölümünde anahtarları belirtecekseniz, bu bölümü korumalı yapılandırma kullanarak şifrelemeniz önerilir.

Oluşturucular

MachineKeySection()

Varsayılan ayarları kullanarak sınıfının yeni bir örneğini MachineKeySection başlatır.

Özellikler

ApplicationName

Uygulamanın adını alır veya ayarlar.

CompatibilityMode

.NET Framework sürüm 2.0 Service Pack 1 sürümünden sonra sunulan görünüm durumu için yükseltilmiş şifreleme yöntemlerinin kullanılıp kullanılmayacağını belirten bir değer alır veya ayarlar.

CurrentConfiguration

Geçerli ConfigurationElement örneğin ait olduğu yapılandırma hiyerarşisini temsil eden en üst düzey Configuration örneğe başvuru alır.

(Devralındığı yer: ConfigurationElement)
DataProtectorType

Veri koruyucusu türünün adını alır veya ayarlar. Varsayılan değer: Empty.

Decryption

Form kimlik doğrulama verilerini şifrelemek ve şifresini çözmek için kullanılan şifreleme algoritmasını belirtir.

DecryptionKey

Verileri şifrelemek ve şifresini çözmek için kullanılan anahtarı veya anahtarın oluşturulduğu işlemi alır veya ayarlar.

ElementInformation

Nesnenin özelleştirilebilir olmayan bilgilerini ve işlevselliğini ConfigurationElement içeren bir ElementInformation nesnesi alır.

(Devralındığı yer: ConfigurationElement)
ElementProperty

Nesnenin ConfigurationElementProperty kendisini temsil ConfigurationElement eden nesneyi alır.

(Devralındığı yer: ConfigurationElement)
EvaluationContext

Nesnenin ContextInformation nesnesini ConfigurationElement alır.

(Devralındığı yer: ConfigurationElement)
HasContext

özelliğinin nullolup olmadığını CurrentConfiguration gösteren bir değer alır.

(Devralındığı yer: ConfigurationElement)
Item[ConfigurationProperty]

Bu yapılandırma öğesinin özelliğini veya özniteliğini alır veya ayarlar.

(Devralındığı yer: ConfigurationElement)
Item[String]

Bu yapılandırma öğesinin bir özelliğini, özniteliğini veya alt öğesini alır veya ayarlar.

(Devralındığı yer: ConfigurationElement)
LockAllAttributesExcept

Kilitli özniteliklerin koleksiyonunu alır.

(Devralındığı yer: ConfigurationElement)
LockAllElementsExcept

Kilitli öğeler koleksiyonunu alır.

(Devralındığı yer: ConfigurationElement)
LockAttributes

Kilitli özniteliklerin koleksiyonunu alır.

(Devralındığı yer: ConfigurationElement)
LockElements

Kilitli öğeler koleksiyonunu alır.

(Devralındığı yer: ConfigurationElement)
LockItem

Öğesinin kilitli olup olmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: ConfigurationElement)
Properties

Özellik koleksiyonunu alır.

(Devralındığı yer: ConfigurationElement)
SectionInformation

SectionInformation Özelleştirilebilir olmayan bilgileri ve nesnenin işlevselliğini ConfigurationSection içeren bir nesnesi alır.

(Devralındığı yer: ConfigurationSection)
Validation

Form kimlik doğrulamasını doğrulamak ve durum verilerini görüntülemek için kullanılan karma algoritmayı belirtir.

ValidationAlgorithm

Form kimlik doğrulamasını doğrulamak ve durum verilerini görüntülemek için kullanılan algoritmanın adını alır veya ayarlar.

ValidationKey

Form kimlik doğrulamasını doğrulamak ve durum verilerini görüntülemek için kullanılan anahtarı veya anahtarın oluşturulduğu işlemi alır veya ayarlar.

Yöntemler

DeserializeElement(XmlReader, Boolean)

Yapılandırma dosyasından XML okur.

(Devralındığı yer: ConfigurationElement)
DeserializeSection(XmlReader)

Yapılandırma dosyasından XML okur.

(Devralındığı yer: ConfigurationSection)
Equals(Object)

Geçerli ConfigurationElement örneği belirtilen nesneyle karşılaştırır.

(Devralındığı yer: ConfigurationElement)
GetHashCode()

Geçerli ConfigurationElement örneği temsil eden benzersiz bir değer alır.

(Devralındığı yer: ConfigurationElement)
GetRuntimeObject()

Türetilmiş bir sınıfta geçersiz kılındığında özel bir nesne döndürür.

(Devralındığı yer: ConfigurationSection)
GetTransformedAssemblyString(String)

Belirtilen derleme adının dönüştürülmüş sürümünü döndürür.

(Devralındığı yer: ConfigurationElement)
GetTransformedTypeString(String)

Belirtilen tür adının dönüştürülmüş sürümünü döndürür.

(Devralındığı yer: ConfigurationElement)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Init()

ConfigurationElement Nesneyi ilk durumuna ayarlar.

(Devralındığı yer: ConfigurationElement)
InitializeDefault()

Nesne için varsayılan değer kümesini başlatmak için ConfigurationElement kullanılır.

(Devralındığı yer: ConfigurationElement)
IsModified()

Bu yapılandırma öğesinin türetilmiş bir sınıfta uygulandığında son kaydedildiğinden veya yüklendiğinden beri değiştirilip değiştirilmediğini gösterir.

(Devralındığı yer: ConfigurationSection)
IsReadOnly()

Nesnenin ConfigurationElement salt okunur olup olmadığını belirten bir değer alır.

(Devralındığı yer: ConfigurationElement)
ListErrors(IList)

Bu ConfigurationElement nesnedeki ve tüm alt öğelerdeki invalid-property hatalarını geçirilen listeye ekler.

(Devralındığı yer: ConfigurationElement)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnDeserializeUnrecognizedAttribute(String, String)

Seri durumdan çıkarma sırasında bilinmeyen bir öznitelikle karşılaşılıp karşılaşılmadığını belirten bir değer alır.

(Devralındığı yer: ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Seri durumdan çıkarma sırasında bilinmeyen bir öğeyle karşılaşılıp karşılaşılmadığını belirten bir değer alır.

(Devralındığı yer: ConfigurationElement)
OnRequiredPropertyNotFound(String)

Gerekli bir özellik bulunamadığında bir özel durum oluşturur.

(Devralındığı yer: ConfigurationElement)
PostDeserialize()

Seri durumdan çıkarıldıktan sonra çağrılır.

(Devralındığı yer: ConfigurationElement)
PreSerialize(XmlWriter)

Serileştirmeden önce çağrılır.

(Devralındığı yer: ConfigurationElement)
Reset(ConfigurationElement)

Kilitler ve özellik koleksiyonları dahil olmak üzere nesnenin iç durumunu ConfigurationElement sıfırlar.

(Devralındığı yer: ConfigurationElement)
ResetModified()

Türetilmiş bir sınıfta uygulandığında yönteminin IsModified()false değerini olarak sıfırlar.

(Devralındığı yer: ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Türetilmiş bir sınıfta uygulandığında bu yapılandırma öğesinin içeriğini yapılandırma dosyasına yazar.

(Devralındığı yer: ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Bir dosyaya yazmak için tek bir bölüm olarak nesnenin ConfigurationSection birleştirilmemiş bir görünümünü içeren bir XML dizesi oluşturur.

(Devralındığı yer: ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Türetilmiş bir sınıfta uygulandığında bu yapılandırma öğesinin dış etiketlerini yapılandırma dosyasına yazar.

(Devralındığı yer: ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Bir özelliği belirtilen değere ayarlar.

(Devralındığı yer: ConfigurationElement)
SetReadOnly()

IsReadOnly() Nesnenin ve tüm alt öğelerinin ConfigurationElement özelliğini ayarlar.

(Devralındığı yer: ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Yapılandırma nesnesi hiyerarşisi .NET Framework belirtilen hedef sürümü için seri hale getirildiğinde belirtilen öğenin seri hale getirilip getirilmeyeceğini gösterir.

(Devralındığı yer: ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Yapılandırma nesnesi hiyerarşisi .NET Framework belirtilen hedef sürümü için seri hale getirildiğinde belirtilen özelliğin seri hale getirilip getirilmeyeceğini gösterir.

(Devralındığı yer: ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Yapılandırma nesnesi hiyerarşisi .NET Framework belirtilen hedef sürümü için seri hale getirildiğinde geçerli ConfigurationSection örneğin seri hale getirilip getirilmeyeceğini gösterir.

(Devralındığı yer: ConfigurationSection)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

ConfigurationElement Kaydedilmemesi gereken tüm değerleri kaldırmak için nesnesini değiştirir.

(Devralındığı yer: ConfigurationElement)

Şunlara uygulanır

Ayrıca bkz.