Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Trình duyệt của bạn không được hỗ trợ

Bạn cần cập nhật trình duyệt của mình để sử dụng trang web.

Cập nhật lên Internet Explorer phiên bản mới nhất.

Làm thế nào để tạo ra phím bằng cách sử dụng Visual C#.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:312906
Đối với một Microsoft Visual Basic.NET Phiên bản của bài viết này, xem 313091.

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 validationKeydecryptionKey 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 các tập tin Machine.config.


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)

back to the top

Tạo ra các dự án

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

Viết code để tạo ra các phím

Sau mã lần đọc hai đối số đó được thông qua từ các 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. Đầ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 tập tin Machine.config.

Thêm mã sau vào một tập tin .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();        }    }}				

Tạo ra các băm

Bây giờ bạn có thể biên dịch ứng dụng.

Chạy các ứng dụng từ một dấu nhắc lệnh bằng đi qua trong hai giá trị số nguyên là các Kích thước của giải mã và các phím xác nhận. Ví dụ, nếu bạn đặt tên là bàn điều khiển ứng dụng HashConfigCs.exe, loại cú pháp sau đây từ dòng lệnh trong thư mục Bin\debug của ứng dụng:
hashconfigcs.exe 24 64
Bạn có thể mong đợi các ứng dụng để trở về đầu ra tương tự như các đầu ra sau đây:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"            validation="SHA1"/>					
Chú ý Bởi vì mã là 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í tệp Machine.config.
  2. Xác định vị trí các <system.web></system.web> phần trong tập tin cấu hình.
  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.

Thông tin bổ sung

Các machineKey phần nên là như vậy trên web farm tại đây trường hợp:
  • Khi 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 kể từ khi enableViewStateMac được bậ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:
301240Là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 C#.NET
311495 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 C#.NET
306590 THÔNG TIN: ASP.Tổng quan về an ninh mạng
307626 THÔNG TIN: ASP.Tổng quan về cấu hình NET
Xem trạng thái

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 312906 - Xem lại Lần cuối: 08/27/2011 18:33:00 - Bản sửa đổi: 2.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 KbMtvi
Phản hồi
tocol) + "//c.microsoft.com/ms.js'><\/script>");