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

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 312906 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang 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)

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

Thu?c tính

ID c?a bài: 312906 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
T? khóa: 
kbconfig kbhowtomaster kbsecurity kbstate kbmt KB312906 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

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