Cara membuat tombol dengan menggunakan Visual C#.NET untuk digunakan dalam bentuk-bentuk otentikasi

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 312906 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan cara membuat tombol untuk menggunakan untuk enkripsi, dekripsi, dan validasi data cookie bentuk otentikasi. Anda dapat menggunakan tombol yang Anda buat dalam artikel ini untuk validationKey dan decryptionKey atribut <machinekey>bagian di<b00> </b00> </machinekey><system.web></system.web> unsur dalam Machine.config elemen dari file.


Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows 2000 atau Microsoft Windows XP
  • Microsoft.NET Framework
  • Microsoft Internet Information Services (IIS)

Membuat proyek

Menciptakan Visual C#.Aplikasi NET konsol:
  1. Mulai Visual Studio.NET.
  2. Pada Berkas menu, titik Baru, lalu klik Project.
  3. Di bawah Jenis proyek, klik Visual C# proyek.
  4. Di bawah Pola acu, klik Aplikasi konsol.
  5. Nama proyekHashConfigCs.
  6. Klik Oke.

Menulis kode untuk menghasilkan kunci

Berikut kode membaca dua argumen yang lulus dari baris perintah:
  • Argumen pertama adalah jumlah byte yang digunakan untuk membuat decryptionKey atribut.
  • Argumen kedua adalah jumlah byte yang digunakan untuk membuat validationKey atribut.
Kode menggunakan nomor acak generator untuk membuat acak jumlah byte yang didasarkan pada argumen baris perintah. Setelah byte acak dibuat, byte yang diformat dalam heksadesimal string yang cocok untuk menggunakan di file .config.

Catatan Heksadesimal string yang dibuat adalah dua kali ukuran nilai yang dilewatkan pada baris perintah. Sebagai contoh, jika Anda menentukan byte 24 Key, string yang dihasilkan adalah 48 byte panjangnya setelah konversi. The nilai yang valid untuk decryptionKey adalah 8 atau 24. Ini menciptakan kunci 16 byte untuk enkripsi Data Standar (DES) atau 48 byte kunci untuk Triple DES, masing-masing. Nilai yang valid untuk validationKey adalah 20 sampai 64. Ini menciptakan kunci dari 40 untuk 128 byte panjangnya. Output dari kode adalah seluruh <machinekey></machinekey> elemen yang dapat Anda copy dan paste ke Machine.config elemen dari file.

Tambahkan kode berikut ke .cs file:
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();
        }
    }
}
				

Menghasilkan hash

Sekarang Anda dapat mengkompilasi aplikasi.

Menjalankan aplikasi dari prompt perintah oleh lewat di dua nilai bilangan bulat yang ukuran dekripsi dan tombol validasi. Sebagai contoh, jika Anda bernama konsol aplikasi HashConfigCs.exe, ketik sintaks berikut dari baris perintah di direktori Bin\debug aplikasi:
hashconfigcs.exe 24 64
Anda dapat mengharapkan aplikasi untuk mengembalikan output yang mirip output berikut:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>
					
Catatan Karena kode menggunakan nomor acak generator, output berbeda setiap kali.


Memperbarui file konfigurasi

  1. Cari Machine.config elemen dari file.
  2. Cari <system.web></system.web> bagian di file konfigurasi.
  3. Mengganti bagian <machinekey>dengan output dari aplikasi konsol. Jika tidak ada bagian <machinekey>, menciptakan itu.</machinekey> </machinekey>
  4. Simpan file konfigurasi.
  5. Restart IIS pada semua server di Web peternakan untuk Machine.config elemen dari perubahan untuk mengambil efek.

Pemecahan Masalah

Pastikan bahwa bagian <machinekey>memiliki identik, kunci eksplisit (yaitu tidak menggunakan<b00> </b00> </machinekey>AutoGenerate pilihan untuk atribut di bagian <machinekey>) di Web peternakan di skenario berikut: <b00></b00> </machinekey>
  • Ketika Anda menggunakan bentuk-bentuk otentikasi.
  • Ketika Anda menjalankan sesi negara dalam modus StateServer.
  • Bila Anda ingin ViewState akan tersedia di Web peternakan karena enableViewStateMAC atribut diatur ke Benar secara default.

Informasi selengkapnya

The machineKey bagian harus sama di web peternakan di berikut kasus:
  • Bila menggunakan otentikasi bentuk.
  • Ketika Anda menjalankan sesi negara dalam modus StateServer.
  • Bila Anda ingin viewstate akan tersedia di web peternakan karena enableViewStateMac diaktifkan secara default.

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
301240Bagaimana menerapkan otentikasi berbasis bentuk di ASP Anda.NET aplikasi dengan menggunakan C#.NET
311495 Bagaimana menerapkan berbasis peran keamanan dengan otentikasi berbasis bentuk di ASP Anda.NET aplikasi dengan menggunakan Visual C#.NET
306590 INFO: ASP.Ikhtisar bersih keamanan
307626 INFO: ASP.NET konfigurasi overview

Properti

ID Artikel: 312906 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Kata kunci: 
kbconfig kbhowtomaster kbsecurity kbstate kbmt KB312906 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:312906

Berikan Masukan

 

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