Share via


MachineKeySection Kelas

Definisi

Menentukan pengaturan konfigurasi yang mengontrol pembuatan kunci dan algoritma yang digunakan dalam operasi enkripsi, dekripsi, dan kode autentikasi pesan (MAC) dalam autentikasi Formulir Windows, validasi status tampilan, dan isolasi aplikasi status sesi. Kelas ini tidak dapat diwariskan.

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
Warisan

Contoh

Contoh di bagian ini menunjukkan cara menentukan nilai secara deklaratif untuk beberapa atribut bagian machineKey , yang juga dapat diakses sebagai anggota MachineKeySection kelas.

Contoh berikut dari file konfigurasi menunjukkan cara menentukan nilai secara deklaratif untuk bagian machineKey .

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

Contoh ini menggunakan SHA1. Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.

Contoh berikut menunjukkan cara menggunakan MachineKeySection kelas dalam kode.

#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

Keterangan

Kelas MachineKeySection ini menyediakan cara untuk mengakses dan memodifikasi konten MachineKey bagian secara terprogram dalam file konfigurasi. Bagian ini MachineKey dapat dikonfigurasi pada tingkat mesin (Machine.config) atau aplikasi (Web.config) dan mengontrol kunci dan algoritma yang digunakan untuk autentikasi Formulir Windows, validasi status tampilan, dan isolasi aplikasi status sesi. Agar salah satu fitur ini berfungsi di seluruh jaringan server Web (farm Web), DecryptionKey atribut dan ValidationKey bagian MachineKey harus dikonfigurasi secara eksplisit dan identik dengan nilai kunci yang valid. Nilai AutoGenerate tidak berfungsi untuk farm Web, karena bergantung pada rahasia acak kriptografis, yang bertahan menggunakan perlindungan komputer-lokal dan tidak akan sama di lebih dari satu komputer.

Catatan Bagi Inheritor

Jika Anda menentukan kunci di bagian konfigurasi ini, seperti yang diperlukan dalam skenario Farm web, disarankan agar Anda mengenkripsi bagian ini dengan menggunakan konfigurasi yang dilindungi.

Konstruktor

MachineKeySection()

Menginisialisasi instans MachineKeySection baru kelas dengan menggunakan pengaturan default.

Properti

ApplicationName

Atur atau tetapkan nama aplikasi.

CompatibilityMode

Mendapatkan atau menetapkan nilai yang menentukan apakah metode enkripsi yang ditingkatkan untuk status tampilan yang diperkenalkan setelah rilis Paket Layanan 1 versi .NET Framework 2.0 digunakan.

CurrentConfiguration

Mendapatkan referensi ke instans tingkat Configuration atas yang mewakili hierarki konfigurasi tempat instans saat ini ConfigurationElement berada.

(Diperoleh dari ConfigurationElement)
DataProtectorType

Mendapatkan atau mengatur nama jenis pelindung data. Default adalah Empty.

Decryption

Menentukan algoritma enkripsi yang digunakan untuk mengenkripsi dan mendekripsi data autentikasi formulir.

DecryptionKey

Mendapatkan atau mengatur kunci yang digunakan untuk mengenkripsi dan mendekripsi data, atau proses pembuatan kunci.

ElementInformation

ElementInformation Mendapatkan objek yang berisi informasi dan fungsionalitas ConfigurationElement objek yang tidak dapat disesuaikan.

(Diperoleh dari ConfigurationElement)
ElementProperty

ConfigurationElementProperty Mendapatkan objek yang mewakili objek itu ConfigurationElement sendiri.

(Diperoleh dari ConfigurationElement)
EvaluationContext

ContextInformation Mendapatkan objek untuk ConfigurationElement objek .

(Diperoleh dari ConfigurationElement)
HasContext

Mendapatkan nilai yang menunjukkan apakah CurrentConfiguration properti adalah null.

(Diperoleh dari ConfigurationElement)
Item[ConfigurationProperty]

Mendapatkan atau mengatur properti atau atribut elemen konfigurasi ini.

(Diperoleh dari ConfigurationElement)
Item[String]

Mendapatkan atau mengatur properti, atribut, atau elemen turunan dari elemen konfigurasi ini.

(Diperoleh dari ConfigurationElement)
LockAllAttributesExcept

Mendapatkan koleksi atribut terkunci.

(Diperoleh dari ConfigurationElement)
LockAllElementsExcept

Mendapatkan koleksi elemen terkunci.

(Diperoleh dari ConfigurationElement)
LockAttributes

Mendapatkan koleksi atribut terkunci.

(Diperoleh dari ConfigurationElement)
LockElements

Mendapatkan koleksi elemen terkunci.

(Diperoleh dari ConfigurationElement)
LockItem

Mendapatkan atau menetapkan nilai yang menunjukkan apakah elemen dikunci.

(Diperoleh dari ConfigurationElement)
Properties

Mendapatkan koleksi properti.

(Diperoleh dari ConfigurationElement)
SectionInformation

SectionInformation Mendapatkan objek yang berisi informasi dan fungsionalitas ConfigurationSection objek yang tidak dapat disesuaikan.

(Diperoleh dari ConfigurationSection)
Validation

Menentukan algoritma hashing yang digunakan untuk memvalidasi autentikasi formulir dan melihat data status.

ValidationAlgorithm

Mendapatkan atau mengatur nama algoritma yang digunakan untuk memvalidasi autentikasi formulir dan melihat data status.

ValidationKey

Mendapatkan atau mengatur kunci yang digunakan untuk memvalidasi autentikasi formulir dan melihat data status, atau proses di mana kunci dihasilkan.

Metode

DeserializeElement(XmlReader, Boolean)

Membaca XML dari file konfigurasi.

(Diperoleh dari ConfigurationElement)
DeserializeSection(XmlReader)

Membaca XML dari file konfigurasi.

(Diperoleh dari ConfigurationSection)
Equals(Object)

Membandingkan instans saat ini ConfigurationElement dengan objek yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetHashCode()

Mendapatkan nilai unik yang mewakili instans saat ini ConfigurationElement .

(Diperoleh dari ConfigurationElement)
GetRuntimeObject()

Mengembalikan objek kustom saat ditimpa di kelas turunan.

(Diperoleh dari ConfigurationSection)
GetTransformedAssemblyString(String)

Mengembalikan versi yang ditransformasi dari nama rakitan yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetTransformedTypeString(String)

Mengembalikan versi yang ditransformasi dari nama jenis yang ditentukan.

(Diperoleh dari ConfigurationElement)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
Init()

Mengatur objek ke ConfigurationElement status awalnya.

(Diperoleh dari ConfigurationElement)
InitializeDefault()

Digunakan untuk menginisialisasi sekumpulan nilai default untuk ConfigurationElement objek.

(Diperoleh dari ConfigurationElement)
IsModified()

Menunjukkan apakah elemen konfigurasi ini telah dimodifikasi sejak terakhir disimpan atau dimuat saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationSection)
IsReadOnly()

Mendapatkan nilai yang menunjukkan apakah ConfigurationElement objek bersifat baca-saja.

(Diperoleh dari ConfigurationElement)
ListErrors(IList)

Menambahkan kesalahan properti yang tidak valid dalam objek ini ConfigurationElement , dan di semua subelemen, ke daftar yang diteruskan.

(Diperoleh dari ConfigurationElement)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
OnDeserializeUnrecognizedAttribute(String, String)

Mendapatkan nilai yang menunjukkan apakah atribut yang tidak diketahui ditemui selama deserialisasi.

(Diperoleh dari ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Mendapatkan nilai yang menunjukkan apakah elemen yang tidak diketahui ditemui selama deserialisasi.

(Diperoleh dari ConfigurationElement)
OnRequiredPropertyNotFound(String)

Memberikan pengecualian ketika properti yang diperlukan tidak ditemukan.

(Diperoleh dari ConfigurationElement)
PostDeserialize()

Dipanggil setelah deserialisasi.

(Diperoleh dari ConfigurationElement)
PreSerialize(XmlWriter)

Dipanggil sebelum serialisasi.

(Diperoleh dari ConfigurationElement)
Reset(ConfigurationElement)

Mereset status ConfigurationElement internal objek, termasuk kunci dan koleksi properti.

(Diperoleh dari ConfigurationElement)
ResetModified()

Mengatur ulang nilai metode ke IsModified()false saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Menulis konten elemen konfigurasi ini ke file konfigurasi saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Membuat string XML yang berisi tampilan ConfigurationSection objek yang tidak tergabung sebagai satu bagian untuk menulis ke file.

(Diperoleh dari ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Menulis tag luar elemen konfigurasi ini ke file konfigurasi saat diimplementasikan di kelas turunan.

(Diperoleh dari ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Mengatur properti ke nilai yang ditentukan.

(Diperoleh dari ConfigurationElement)
SetReadOnly()

IsReadOnly() Mengatur properti untuk ConfigurationElement objek dan semua sublemen.

(Diperoleh dari ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Menunjukkan apakah elemen yang ditentukan harus diserialisasikan ketika hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

(Diperoleh dari ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Menunjukkan apakah properti yang ditentukan harus diserialisasikan ketika hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

(Diperoleh dari ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Menunjukkan apakah instans saat ini ConfigurationSection harus diserialisasikan ketika hierarki objek konfigurasi diserialisasikan untuk versi target yang ditentukan dari .NET Framework.

(Diperoleh dari ConfigurationSection)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Memodifikasi ConfigurationElement objek untuk menghapus semua nilai yang tidak boleh disimpan.

(Diperoleh dari ConfigurationElement)

Berlaku untuk

Lihat juga