Forms kimlik doğrulaması kullanmak için Visual C#. NET'i kullanarak anahtarlarını oluşturma hakkında

Makale çevirileri Makale çevirileri
Makale numarası: 312906 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, şifreleme şifre çözme ve Forms kimlik doğrulama tanımlama bilgisi verileri doğrulamak için kullanılacak tuşlar nasıl oluşturulacağını açıklar. ValidationKey ve ısolateapps öznitelikleri için bu makalenin <machinekey>bölümünde, oluşturduğunuz tuşlarını kullanabilirsiniz<system.web> Machine.config dosyasındaki öğesi.


Gereksinimler

Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Windows 2000 veya Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft ınternet ınformation Services (IIS)

Proje oluşturma

Bir Visual C# .NET konsol uygulaması oluşturun:
  1. Visual Studio .NET'i başlatın.
  2. Dosya menüsünden Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Project Types altında Visual C# Projects ' ı tıklatın.
  4. Şablonları altında konsol uygulaması) tıklatın.
  5. Projeyi HashConfigCs.
  6. Tamam ' ı tıklatın.

Anahtarlar oluşturmak için kod yazma

Aşağıdaki kod, komut satırına geçirilen iki bağımsız değişkeni okur:
  • Ilk bağımsız değişken ısolateapps öznitelik oluşturmak için kullanılan bayt sayısıdır.
  • Ikinci bağımsız değişken validationKey öznitelik oluşturmak için kullanılan bayt sayısıdır.
Komut satırı bağımsız değişkenleri hakkında temel bayt rasgele bir sayı oluşturmak için bir rasgele sayı üretici kodunu kullanır. Rasgele bayt oluşturduktan sonra byte, .config dosyalarında kullanmak için uygun bir onaltılık dize olarak biçimlendirilir.

Not Oluşturulan onaltılık dize iki kez komut satırına geçirilen değerin boyutudur. Anahtar için 24 bayt belirtirseniz, örneğin, elde edilen 48 bayt uzunluğunda dönüştürme işleminden sonra dizedir. ısolateapps için geçerli değerler, 8 veya 24. Bu veri şifrelemesi için 16 baytlık bir anahtar oluşturur standardı (DES) veya bir 48 bayt anahtar için Üçlü DES, sırasıyla. Geçerli validationKey için 20 için 64 değerlerdir. Bu anahtarlar 40 ' 128 bayt uzunluğunda oluşturur. Koddan bir tüm <machinekey>çıktıdır öğe kopyalamak ve Machine.config dosyasına yapıştırın.

Add the following code to a .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();
        }
    }
}
				

Karma değerlerini oluşturma

Şimdi uygulama derleyebilirsiniz.

Uygulama, iki tamsayı değerler şifre çözme ve doğrulama anahtarları boyutunu, kağıt geçirme tarafından bir komut isteminden çalıştırın. Konsol uygulaması HashConfigCs.exe adlı, örneğin, aşağıdaki sözdizimini komut satırından uygulama Bin\debug dizininde yazın:
hashconfigcs.exe 24 64
Aşağıdaki çıktıyı benzer bir çıktı dönmek için uygulamayı bekleyebileceğiniz:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>
					
Not Çıkış kodu bir Rastgele sayı oluşturucu kullandığından, her zaman farklıdır.


Yapılandırma dosyasını Güncelleştir

  1. Machine.config dosyasını bulun.
  2. <System.web> bulun. yapılandırma dosyasında bir bölüm.
  3. Konsol uygulaması çıktısı <machinekey>bölümü değiştirin. <machinekey>Bölümü yoksa, oluşturun.
  4. Yapılandırma dosyası olarak kaydedin.
  5. Machine.config değişikliklerin etkili olması <a1>Web</a1> grubundaki tüm sunucularda, ııS'YI yeniden başlatın.

SORUN GİDERME

<machinekey>Bölümü tuşlarını, aynı, açık olduğundan emin olun (yani, kullanmadığıÖzniteliklerin <machinekey>bölümünde AutoGenerate seçeneği) aşağıdaki senaryolarda Web grubu üzerinden:
  • Forms kimlik doğrulaması kullandığınızda.
  • Oturum durumu StateServer modunda çalıştırdığınızda.
  • ViewState enableViewStateMAC özniteliği true olarak varsayılan olarak ayarlandığı için bir Web grubu kullanılabilir olmasını istediğinizde.

Ek bilgi

MachineKey bölümünde, aşağıdaki durumlarda web grubu üzerinden aynı olması gerekir:
  • Form kimlik doğrulaması kullanıldığında.
  • Oturum durumu StateServer modunda çalıştırdığınızda.
  • Görünüm durumu enableViewStateMac varsayılan olarak açık olduğundan bir web grubu kullanılabilir olmasını istediğinizde.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
301240Form tabanlı kimlik doğrulamasını ASP.NET uygulamanızı C#. NET'i kullanarak nasıl
311495Rol tabanlı güvenlik form tabanlı kimlik doğrulaması ile ASP.NET uygulamanız Visual C#. NET'i kullanarak nasıl
306590BILGI: ASP.NET güvenliğine genel bakış
307626BILGI: ASP.NET yapılandırmasına genel bakış

Özellikler

Makale numarası: 312906 - Last Review: 11 Temmuz 2005 Pazartesi - Gözden geçirme: 3.10
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Anahtar Kelimeler: 
kbmt kbconfig kbhowtomaster kbsecurity kbstate KB312906 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:312906

Geri Bildirim Ver

 

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