Udostępnij za pośrednictwem


machineKey Element (ASP.Schemat ustawień netto)

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Konfiguruje algorytmów i kluczy, aby użyć szyfrowania, odszyfrowywania i sprawdzania poprawności danych uwierzytelniania formularzy oraz stan widoku danych i tożsamości stanu sesji poza procesem.

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name]
  decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty i elementy podrzędne elementy nadrzędne.

Atrybuty

Atrybut

Opis

decryption

Opcjonalny String atrybut.

Określa algorytm używany do szyfrowania i odszyfrowywania danych uwierzytelniania formularzy.

Ten atrybut może mieć jedną z następujących wartości:

  • AutoOkreśla, że program ASP.NET automatycznie określa algorytm odszyfrowywania. Jest to domyślna wartość tego atrybutu.

  • AESOkreśla, że program ASP.NET używa AES (Rijndael) algorytm szyfrowania i odszyfrowywania danych. AESdomyślny algorytm jest i jest używany, gdy wartość tego atrybutu jest Auto. Ten algorytm jest zgodny ze Stanów Zjednoczonych Federal Information Processing norm (FIPS).

  • DESOkreśla, że program ASP.NET używa algorytmu Data Encryption Standard (DES) do szyfrowania i odszyfrowywania danych. Ten algorytm jest włączone tylko w celach starszych i powinno być używane tylko, jeżeli zgodność z wcześniejszymi wersjami programu ASP.NET.

  • 3DESOkreśla, że program ASP.NET używa TripleDES algorytm (3DES) do szyfrowania i odszyfrowywania danych. Ten algorytm jest włączone tylko w celach starszych i powinno być używane tylko, jeżeli zgodność z wcześniejszymi wersjami programu ASP.NET.

  • alg:algorithm_name Określa, że program ASP.NET wykorzystuje algorytm niestandardowe do szyfrowania i odszyfrowywania danych. Algorytm szyfrowania musi zdefiniowane w klasie, która wynika z SymmetricAlgorithm. ASP.NET wywołania SymmetricAlgorithm.Create metody i przechodzi w imieniu algorytm, który jest określony w tym miejscu.

decryptionKey

Wymagane String atrybut.

Określa klucz, który jest używany do szyfrowania i odszyfrowywania danych lub proces, przez który klucz jest generowany. Ten atrybut jest używany dla uwierzytelniania formularzy, szyfrowania i odszyfrowywania i stan widoku szyfrowania i odszyfrowywania, gdy stan widoku jest zaszyfrowany.

Ten atrybut może mieć jedną z następujących wartości:

  • AutoGenerate, IsolateAppsOkreśla, że klucz jest generowany automatycznie. Jest to wartość domyślna. AutoGenerate Modyfikator Określa, że program ASP.NET generuje klucz losowy i przechowuje go w urząd zabezpieczeń lokalnych (LSA). IsolateApps Modyfikator Określa, że program ASP.NET generuje unikatowy szyfrowany klucz dla każdej aplikacji przy użyciu Identyfikatora aplikacji każdego wniosku.

  • wartość klucza Określa ręcznie przypisany klucz. decryptionKey Wartości należy ręcznie ustawić na ciąg znaków szesnastkowych gwarantujący spójną konfigurację na wszystkich serwerach w farmie sieci Web. Klucz powinien mieć 64 bitów (16 znaków szesnastkowych) długo DES szyfrowania lub 192 bitów (48 znaków szesnastkowych) długie dla 3DES. Dla AES, klucz musi być 128 bitów (32 znaki), 192 bity (48 znaków) lub 256 długo bity (64 znaków). Najdłuższy klucz daje najwięcej zabezpieczeń.Losowe klucze mogą być generowane ręcznie za pomocą RNGCryptoServiceProvider klasy. Aby uzyskać więcej informacji, zobacz , jak: Konfigurowanie MachineKey w ASP.NET 2.0.

Aby uzyskać więcej informacji, zobacz DecryptionKey.

validation

Wymagane MachineKeyValidation atrybut.

Określa algorytm skrótu, który jest używany do sprawdzania poprawności danych.

Domyślnie stan widoku jest przekazywany jako ciąg zakodowany base-64. Chociaż na pierwszy rzut oka zakodowanych danych jest niezrozumiały, kodowanie base-64, zapewnia żadnych zabezpieczeń, ponieważ jest łatwo zdekodowana. Jeśli są przechowywane poufne dane w widoku stanu, można określić program ASP.NET szyfruje dane stanu widoku, oprócz sprawdzania poprawności go. Można określić stan widoku szyfrowania dla wszystkich stron aplikacji sieci Web lub dla wybranych stron. Aby uzyskać informacje na temat tej opcji, zobacz ViewStateEncryptionMode i RegisterRequiresViewStateEncryption().

Jeśli chcesz korzystać z szyfrowania stanu widoku, należy ustawić ten atrybut AES. W takim przypadku wartość decryptionKey będzie używany do szyfrowania danych o stanie widoku i ASP.NET będzie używał HMACSHA1 algorytm mieszania dla sprawdzania poprawności danych.

Ten atrybut może mieć jedną z następujących wartości.

  • AESOkreśla, że program ASP.NET używa AES (Rijndael) algorytmu szyfrowania do szyfrowania i odszyfrowywania danych, gdy stan widoku jest zaszyfrowany. Jeśli ta opcja jest określona dla validation atrybut, HMACSHA1 algorytm jest używany do sprawdzania poprawności.

  • MD5Określa, że program ASP.NET używa Message Digest 5 (MD5) algorytm wyznaczania wartości skrótu do sprawdzania poprawności danych. Ten algorytm jest włączone tylko w celach starszych i powinno być używane tylko, jeżeli zgodność z wcześniejszymi wersjami programu ASP.NET.

  • SHA1Określa, że program ASP.NET używa HMACSHA1 algorytm wyznaczania wartości skrótu do sprawdzania poprawności danych. Ten algorytm powinno być używane tylko, jeśli trzeba ustawić atrybut AES do obsługi szyfrowania stanu widoku. Otherwise, use HMACSHA256, HMACSHA384, or HMACSHA512.

  • 3DESOkreśla, że program ASP.NET używa TripleDES (3DES) algorytm szyfrowania i odszyfrowywania danych, gdy stan widoku jest zaszyfrowany. Jeśli ta opcja jest określona dla validation atrybut, HMACSHA1 algorytm jest używany do sprawdzania poprawności. Ten algorytm jest włączone tylko w celach starszych i powinno być używane tylko, jeżeli zgodność z wcześniejszymi wersjami programu ASP.NET.

  • HMACSHA256Określa, że program ASP.NET używa HMACSHA256 algorytm wyznaczania wartości skrótu do sprawdzania poprawności danych. Jest to wartość domyślna. Ten algorytm jest zgodny z Zjednoczone stwierdzono Federal Information Processing norm (FIPS).

  • HMACSHA384Określa, że program ASP.NET używa HMACSHA384 algorytm wyznaczania wartości skrótu do sprawdzania poprawności danych. Ta opcja jest dostępna dla aplikacji, które wymagają silniejsze zabezpieczenia, niż przewiduje to przez HMACSHA256 algorytm. Ten algorytm jest zgodny ze Stanów Zjednoczonych Federal Information Processing norm (FIPS).

  • HMACSHA512Określa, że program ASP.NET używa HMACSHA512 algorytm wyznaczania wartości skrótu do sprawdzania poprawności danych. Ta opcja jest dostępna dla aplikacji, które wymagają silniejsze zabezpieczenia, niż przewiduje to przez HMACSHA384 algorytm. Ten algorytm jest zgodny ze Stanów Zjednoczonych Federal Information Processing norm (FIPS).

  • alg:algorithm_name Określa, że program ASP.NET wykorzystuje algorytm niestandardowe. Prefiks "alg:" następuje nazwa klasy, która wynika z KeyedHashAlgorithm. ASP.NET wywołania Create() metody i przechodzi w imieniu algorytm, który jest określony w tym miejscu.

validationKey

Wymagane String atrybut.

Określa klucz, który jest używany do sprawdzania poprawności danych lub proces, w którym jest on generowany. validationKey Wartość jest również używany do generowania sesji out of process, specyficzne dla aplikacji identyfikatorów do zapewnienia zmienne stanu sesji między sesjami.

Ten atrybut może mieć jedną z następujących wartości:

  • AutoGenerate, IsolateAppsOkreśla, że klucz jest generowany automatycznie. Jest to wartość domyślna. AutoGenerate Modyfikator Określa, że program ASP.NET generuje klucz losowy i przechowuje go w lokalnych zabezpieczeń urząd LSA. IsolateApps Modyfikator Określa, że program ASP.NET generuje unikatowy szyfrowany klucz dla każdej aplikacji przy użyciu Identyfikatora aplikacji każdego wniosku.

  • wartość klucza Określa ręcznie przypisany klucz. validationKey Wartości należy ręcznie ustawić na ciąg znaków szesnastkowych gwarantujący spójną konfigurację na wszystkich serwerach w farmie sieci Web. Długość klucza zależy od algorytmu skrótu, który jest używany:

    • AESwymaga 256-bitowym kluczem (64 znaków szesnastkowych).

    • MD5wymaga klucza 128-bitowego (32 znaki szesnastkowe).

    • SHA1wymaga klucza 160-bitowego (40 znaków szesnastkowych).

    • 3DESwymaga klucza 192-bitowego (48 znaków szesnastkowych).

    • HMACSHA256wymaga 256-bitowym kluczem (64 znaków szesnastkowych).

    • HMACSHA384wymaga klucza 384-bitowy (96 znaków szesnastkowych).

    • HMACSHA512wymaga klucza 512 bitów (128 znaków szesnastkowych).

    Losowe klucze mogą być generowane ręcznie za pomocą RNGCryptoServiceProvider klasy. Aby uzyskać więcej informacji, zobacz , jak: Konfigurowanie MachineKey w ASP.NET 2.0. W tym temacie nie zawiera listy HMACSHA256, HMACSHA384, lub HMACSHA512 algorytmów. Jednak proces działa w przypadku tych algorytmów, również, tak długo, jak określić poprawną długość klucza.

Aby uzyskać więcej informacji, zobacz ValidationKey.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element

Opis

configuration

Określa element główny wymagane w każdy plik konfiguracyjny, który jest używany przez aparatu plików wykonywalnych języka wspólnego w.NET Framework aplikacji.

system.web

Określa element główny dla aplikacji ASP.Ustawienia konfiguracji netto w konfiguracji pliku i zawiera elementy konfiguracyjne określające konfigurację programu ASP.NET aplikacje sieci Web i kontrolować zachowanie aplikacji.

Uwagi

Poniższy przykład kodu demonstruje, jak ustawić zarówno validationKey i decryptionKey atrybuty do AutoGenerate. isolateApps Generowanie unikatowego klucza dla każdej aplikacji na serwerze jest określona wartość.

<machineKey 
    validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
/>

Poniższy przykład kodu demonstruje, jak ustawić validationKey atrybutu i decryptionKey atrybutu ręcznie generowanych losowych wartości. validationKey Atrybut jest ustawiony na 256-bitowym kluczem długi dla algorytmu skrótu HMACSHA256 i decryptionKey atrybut jest również ustawiony na 256-bitowy klucz długich najdłuższego możliwego do AES algorytm szyfrowania. Te są tylko przykładami i nie powinny być używane w aplikacji.

<machineKey 
    validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F" 
    decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" 
/>

Zobacz też

Zadania

Walkthrough: Encrypting Configuration Information Using Protected Configuration

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Informacje

System.Web elementu (ASP.Schemat ustawień netto)

Konfiguracja elementu (schemat ustawień ogólne)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Koncepcje

Forms Authentication Across Applications

Securing Roles

Securing Membership

Securing Profile Properties

Securing SessionState

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

Inne zasoby

Ogólne ustawienia konfiguracji (ASP.(NET)

ASP.NET ustawienia konfiguracji

Configuring ASP.NET Applications

ASP.NET Configuration API