Создание разделов с помощью Visual Basic .NET для использования проверки подлинности в формах

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

В этой статье

Аннотация

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

Требования

В приведенном ниже списке перечислены требования к оборудованию, сети, программному обеспечению и пакетам обновления.:
  • Microsoft Windows 2000 или Microsoft Windows XP
  • Microsoft .NET Framework
  • Службы IIS

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

  1. Запустите Microsoft Visual Studio .NET..
  2. НаФайл:Выберите пункт менюСОЗДАТЬ.и выберите командуProject.
  3. В диалоговом окнеТипы проектовобласть, нажмите кнопкуПроекты Visual Basic.
  4. В диалоговом окнеШаблоны:область, нажмите кнопкуПриложение консоли.
  5. В диалоговом окнеИМЯтекстовое поле, типHashConfigVbи выберите командуOk..

Написать код для хэширования паролей

Код в этом разделе указывается двух аргументов, переданных из командной строки:
  • Первым аргументом является число байтов, который используется для созданияdecryptionKeyattribute:.
  • Вторым аргументом является число байтов, который используется для созданияvalidationKeyattribute:.
Код использует генератор случайных чисел для создания случайного числа байтов, в зависимости от аргументов командной строки. После создания случайных байтов байты будут отформатированы в шестнадцатеричную строку, которая подходит для использования в файлах конфигурации.

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

  1. Добавьте новый файл класса с именем KeyCreator в проект Visual Basic.
  2. Замените существующий код в файле KeyCreator.vb следующий код:
    Imports System
    Imports System.Text
    Imports System.Security.Cryptography
    
    Namespace Crypto
      Public Class KeyCreator
    	
        Public Shared Sub CreateMachineKey()
          Dim commandLineArgs As String()
          commandLineArgs = System.Environment.GetCommandLineArgs()
    
          Dim decryptionKey As String
          decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs(1)))
          Dim validationKey As String
          validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs(2)))
    
          Console.WriteLine("<machineKey validationKey=""{0}"" decryptionKey=""{1}"" validation=""SHA1""/>", _
          validationKey, decryptionKey)
         End Sub
    
         Public Shared Function CreateKey(numBytes As Integer) As String
           Dim rng As RNGCryptoServiceProvider = New RNGCryptoServiceProvider()
           Dim buff(numBytes -1) As Byte
    
           rng.GetBytes(buff)
    				
           Return BytesToHexString(buff)
         End Function
     
         Public Shared Function BytesToHexString(bytes As Byte()) As String
           Dim hexString As StringBuilder = New StringBuilder(64)
           Dim counter as Integer
    
           For counter = 0 To bytes.Length - 1
             hexString.Append(String.Format("{0:X2}", bytes(counter)))
           Next
    
           Return hexString.ToString()
        End Function
    
      End Class
    End Namespace
    					
  3. Откройте модуль Module1.VB файл, создаваемый по умолчанию, а затем добавьте следующий код вОсновной номер:процедуры Sub.
        Dim MyKeyCreator As New Crypto.KeyCreator()
        MyKeyCreator.CreateMachineKey()
    					
  4. Постройте приложение.

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

Запустите приложение из командной строки и затем передать в двух целочисленных значений, которые размер расшифровки и проверки ключей. Если имя консольного приложения HashConfigVb.exe, введите следующий синтаксис командной строки в ячейку каталога приложения.
HashConfigVb.exe 24-64
Приложения должны возвращать выходные данные, похожее на следующее:
<machineKey validationKey="08CE6B478DCE73..........E566D8AC5D1C045BA60"
            decryptionKey="4252D6B2268.........67F451CE65D0F2ABE9BCD3A"
            validation="SHA1"/>
					
Примечание.Поскольку код использует генератор случайных чисел, результат отличается каждый раз.

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

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

ПОИСК И УСТРАНЕНИЕ НЕПОЛАДОК

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

Ссылки

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

Свойства

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

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

 

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