Làm thế nào để tạo ra phím bằng cách sử dụng Visual Basic.NET để sử dụng trong các hình thức xác thực

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:313091
Đối với một Microsoft Visual C#.NET Phiên bản này viết, xem 312906.

Bài viết này đề cập Microsoft sau.Không gian tên thư viện lớp của NET Framework:
  • System.Text
  • System.Security.cryptography

TRONG TÁC VỤ NÀY

TÓM TẮT
Bài viết này mô tả cách tạo phím để sử dụng cho mã hóa giải mã và xác nhận dữ liệu cookie của các hình thức xác thực. Bạn có thể sử dụng các phím mà bạn tạo trong bài viết này cho các validationKey và các decryptionKey thuộc tính của các <machinekey>phần trong các<b00> </b00> </machinekey><system.web></system.web> yếu tố trong Machine.config và Web.config tập tin.

Yêu cầu

Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, hạ tầng mạng, và gói dịch vụ mà bạn cần:
  • Microsoft Windows 2000 hoặc Microsoft Windows XP
  • Microsoft.NET Framework
  • Microsoft Internet Information Services (IIS)

Tạo ra các dự án

  1. Bắt đầu Microsoft Visual Studio.NET.
  2. Ngày Tệp trình đơn, điểm đến Mới, sau đó bấm Dự án.
  3. Trong các Các loại dự án khu vực, nhấp vào Visual Basic dự án.
  4. Trong các Khuôn mẫu khu vực, nhấp vào Giao diện điều khiển ứng dụng.
  5. Trong các Tên hộp văn bản, loại HashConfigVb, và sau đó Nhấp vào Ok.

Viết mã hash mật khẩu

Mã trong phần này lần đọc hai đối số được truyền từ dòng lệnh:
  • Đối số đầu tiên là số byte được sử dụng để tạo các decryptionKey thuộc tính.
  • Đối số thứ hai là số lượng byte được sử dụng để tạo các validationKey thuộc tính.
Mã sử dụng một bộ tạo số ngẫu nhiên để tạo ra một ngẫu nhiên số byte dựa trên các đối số dòng lệnh. Sau byte ngẫu nhiên tạo, các byte đang được định dạng thành một chuỗi hệ thập lục phân phù hợp cho sử dụng trong các tập tin .config.

Chú ý Chuỗi hệ thập lục phân được tạo ra là hai lần kích thước của các giá trị được thông qua vào dòng lệnh. Ví dụ, nếu bạn chỉ định 24 byte Đối với một khóa, chuỗi kết quả là 48 byte dài sau khi chuyển đổi. Các giá trị hợp lệ cho decryptionKey là 8 hoặc 24. Điều này tạo ra một khoá 16 byte cho mã hóa dữ liệu Tiêu chuẩn (DES) hoặc một byte 48 chính cho Triple DES, tương ứng. Giá trị hợp lệ cho validationKey có 20 đến 64. Điều này tạo ra phím từ 40 đến 128 byte dài sau khi chuyển đổi. Đầu ra từ mã là một toàn bộ <machinekey></machinekey> yếu tố mà bạn có thể sao chép và dán vào một Machine.config hoặc một Web.config tệp.

  1. Thêm một lớp mới tập tin tên KeyCreator của bạn Visual BASIC dự án.
  2. Thay thế mã hiện có trong tập tin KeyCreator.vb với các mã sau đây:
    Imports SystemImports System.TextImports System.Security.CryptographyNamespace 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 ClassEnd Namespace					
  3. Mở tập tin Module1.vb được tạo ra theo mặc định, và sau đó thêm mã sau đây trong các Chính phụ thói quen:
        Dim MyKeyCreator As New Crypto.KeyCreator()    MyKeyCreator.CreateMachineKey()					
  4. Xây dựng các ứng dụng.

Tạo ra các băm

Chạy các ứng dụng từ một dấu nhắc lệnh, và sau đó vượt qua trong hai giá trị số nguyên là kích thước của giải mã và các phím xác nhận. Nếu bạn đặt tên ứng dụng giao diện điều khiển HashConfigVb.exe, gõ cú tại dấu nhắc lệnh trong rác Danh mục các ứng dụng:
HashConfigVb.exe 24 64
Ứng dụng nên trở về đầu ra tương tự như các đầu ra sau đây:
<machineKey validationKey="08CE6B478DCE73..........E566D8AC5D1C045BA60"            decryptionKey="4252D6B2268.........67F451CE65D0F2ABE9BCD3A"            validation="SHA1"/>					
Chú ý Bởi vì các mã sử dụng một bộ tạo số ngẫu nhiên, đầu ra là khác nhau mỗi lần.

Cập Nhật tập tin cấu hình

  1. Xác định vị trí Machine.config hoặc Web.config tập tin.
  2. Xác định vị trí phần <system.web>trong cấu hình tệp.</system.web>
  3. Thay thế phần <machinekey>với sản lượng từ ứng dụng giao diện điều khiển. Nếu phần <machinekey>không tồn tại, tạo nó</machinekey> </machinekey>
  4. Lưu tập tin cấu hình.
  5. Khởi động lại IIS trên tất cả các máy chủ Web trang trại cho những thay đổi Machine.config có hiệu lực.

Khắc phục sự cố

Hãy chắc chắn rằng phần <machinekey>có giống hệt nhau, rõ ràng phím (có nghĩa là, không sử dụng các<b00> </b00> </machinekey>AutoGenerate tùy chọn cho các thuộc tính trong phần <machinekey>) qua nông trang Web trong các kịch bản sau đây: <b00></b00> </machinekey>
  • Khi bạn sử dụng các hình thức xác thực.
  • Khi bạn chạy phiên bang trong chế độ StateServer.
  • Khi bạn muốn ViewState có sẵn trên một trang trại Web bởi vì các enableViewStateMAC thuộc tính được đặt thành Sự thật Theo mặc định.
THAM KHẢO
Để biết thêm chi tiết, nhấp vào số bài viết sau để xem các bài viết trong cơ sở kiến thức Microsoft:
308157Làm thế nào để thực hiện dựa trên các hình thức xác thực trong ASP của bạn.NET ứng dụng bằng cách sử dụng Visual Basic.NET
306238 Làm thế nào để thực hiện dựa trên vai trò an ninh với dựa trên các hình thức xác thực trong ASP của bạn.NET ứng dụng bằng cách sử dụng Visual Basic.NET
306590 THÔNG BÁO: ASP.Tổng quan về an ninh mạng
307626 THÔNG BÁO: ASP.Tổng quan về cấu hình NET
webfarm xem nhà nước

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 313091 - Xem lại Lần cuối: 08/27/2011 21:19:00 - Bản sửa đổi: 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 KbMtvi
Phản hồi