Как создавать ключи с помощью Visual C#.NET для использования проверки подлинности для форм

Переводы статьи Переводы статьи
Код статьи: 312906 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье описывается создание ключей для шифрования, расшифровки и проверки данных cookie проверки подлинности форм. Вы можно использовать ключи, создаваемые в этой статье для validationKey и decryptionKey атрибуты <machinekey> в разделе<b00></b00></machinekey><system.web></system.web> элемент в файле Machine.config.


Требования

В следующем списке представлены рекомендуемого оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, необходимо:
  • Microsoft Windows 2000 или Microsoft Windows XP
  • Корпорация Майкрософт.NET Framework
  • Информационные службы Интернета (IIS)

Создание проекта

Создание Visual C#.NET консольного приложения:
  1. Запустите Visual Studio.NET.
  2. На Файл Выберите пункт Новый, а затем нажмите кнопку Проект.
  3. В группе Типы проектов, нажмите кнопку Проекты Visual C#.
  4. В группе Шаблоны, нажмите кнопку Консольное приложение.
  5. Имя проектаHashConfigCs.
  6. Нажмите кнопку ОК.

Напишите код для генерации ключей

В следующем коде чтение двух аргументов, передаваемых из Командная строка:
  • Первым аргументом является число байтов, используемых для Создание decryptionKey атрибут.
  • Вторым аргументом является число байтов, используемых для Создание validationKey атрибут.
Код использует генератор случайных чисел для создания случайных число байтов, в зависимости от аргументов командной строки. После случайных байтов создан, байты форматируются в шестнадцатеричную строку, которая подходит для Используйте файлы config.

Примечание Представляет шестнадцатеричную строку, которая создается два раза размер значение, передаваемое в командной строке. Например, если указать 24 байта для ключа результирующая строка будет 48 байт после преобразования. В Атрибут decryptionKey — 8 или 24. Это создает 16-разрядный ключ для шифрования данных Standard (DES) или 48 байтов ключа для Triple DES, соответственно. Допустимые значения validationKey — от 20 до 64. Это создает ключи от 40 до 128 байт. Результат выполнения этого кода является вся <machinekey></machinekey> элемент, который можно скопировать и вставить в файл Machine.config.

CS-файл добавьте следующий код:
using System;
using System.Text;
using System.Security.Cryptography;

namespace Crypto
{
    public class KeyCreator
    {
        public static void Main(String[] args)
        {			
            String[] commandLineArgs = System.Environment.GetCommandLineArgs();
            string decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs[1]));
            string validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs[2]));

            Console.WriteLine("<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\"/>", validationKey, decryptionKey);
        }	

        static String CreateKey(int numBytes) 
        {
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            byte[] buff = new byte[numBytes];

            rng.GetBytes(buff);
            return BytesToHexString(buff);
        }

        static String BytesToHexString(byte[] bytes) 
        {
            StringBuilder hexString = new StringBuilder(64);

            for (int counter = 0; counter < bytes.Length; counter++) 
            {
                hexString.Append(String.Format("{0:X2}", bytes[counter]));
            }
            return hexString.ToString();
        }
    }
}
				

Создает хэш-кодов

Теперь можно скомпилировать приложение.

Запустить приложения из командной строки, передавая два целочисленных значения размер ключи расшифровки и проверки. Например, если имя консоли приложение HashConfigCs.exe, введите следующую команду из командной строки в каталоге Bin\debug приложение:
hashconfigcs.exe 24-64
Можно ожидать, что приложение возвращает выходные данные об ошибке следующие выходные данные:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>
					
Примечание Поскольку код использует генератор случайных чисел, выходные данные отличается каждый раз.


Обновление файла конфигурации

  1. Найдите в файле Machine.config.
  2. Найдите <system.web></system.web> раздел в файле конфигурации.
  3. Заменить раздел <machinekey> выходные данные консольное приложение. Если в разделе <machinekey> не существует, создать его.</machinekey></machinekey>
  4. Сохраните файл конфигурации.
  5. Перезапустите службы IIS на всех серверах веб-фермы, чтобы изменения вступили в силу Machine.config.

Устранение неполадок

Убедитесь в том разделе <machinekey> имеет одинаковую явные ключи (то есть, не используйте<b00></b00></machinekey>Автоматически заполнять параметр атрибутов в разделе « <machinekey> ») между веб-фермы в следующих случаях: <b00></b00></machinekey>
  • При использовании проверки подлинности форм.
  • При запуске состояния сеанса в режиме StateServer.
  • Если необходимо, ViewState доступен через веб-фермы Поскольку enableViewStateMAC атрибут имеет значение Значение true по умолчанию.

Дополнительные сведения

В machineKey раздел должен быть одинаковым для веб-фермы в следующих случаях:
  • При использовании проверки подлинности форм.
  • При запуске состояния сеанса в режиме StateServer.
  • Если необходимо, viewstate доступен через веб-фермы Поскольку enableViewStateMac включен по умолчанию.

Ссылки

Для получения дополнительных сведений щелкните следующие номера статей базы знаний Майкрософт:
301240Как реализовать проверку подлинности на основе форм в приложении ASP.NET с помощью C#.NET
311495 Как реализовать ролевой безопасности с проверкой подлинности на основе форм в приложении ASP.NET с помощью Visual C#.NET
306590 ИНФОРМАЦИЯ: ASP.NET безопасности: Обзор
307626 ИНФОРМАЦИЯ: ASP.Общие сведения о конфигурации NET

Свойства

Код статьи: 312906 - Последний отзыв: 7 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Ключевые слова: 
kbconfig kbhowtomaster kbsecurity kbstate kbmt KB312906 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:312906

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com