Jak vytvořit klíče pomocí Visual C# .NET pro použití ověřování pomocí formulářů

Překlady článku Překlady článku
ID článku: 312906 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje vytvoření klíčů pro šifrování, dešifrování a ověření dat souboru cookie ověřování formulářů. Pomocí kláves, které vytvoříte v tomto článku validationKey a decryptionKey atributy v oddílu <machinekey><system.web> prvek v souboru.


Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace Service Pack:
  • Systém Microsoft Windows 2000 nebo Microsoft Windows XP
  • Rozhraní Microsoft .NET framework
  • Internetová informační služba (IIS)

Vytvoření projektu

Vytvoření aplikace Visual C# .NET konzoly:
  1. Spusťte aplikaci Visual Studio .NET.
  2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
  3. V části Typy projektu klepněte na položku Visual C# projekty.
  4. V části šablony na aplikace konzoly.
  5. Název projektu HashConfigCs.
  6. Klepněte na tlačítko OK.

Zápis kódu generování klíčů.

Následující kód přečte dva argumenty, které jsou předávány z příkazového řádku:
  • První argument je počet bajtů, který slouží k vytvoření atributu decryptionKey.
  • Druhý argument je počet bajtů, který slouží k vytvoření validationKey atribut.
Kód používá k vytvoření náhodný počet bajtů na základě argumenty příkazového řádku Generátor pseudonáhodných čísel. Po vytvoření náhodných bajtů bajtů zformátovány do šestnáctkového řetězce, který je vhodný pro použití v .config soubory.

Poznámka: Šestnáctkový řetězec, který je vytvořen je dvakrát velikost hodnotu předány na příkazovém řádku. Například pokud určit 24 bajtů pro klíč výsledný řetězec je 48 bajtů délka po převodu. Platné hodnoty decryptionKey je 8 nebo 24. Toto vytvoří 16bajtový klíč pro šifrování dat Standard (DES) nebo 48 bajtů klíč pro Triple DES, respektive. Platné hodnoty validationKey jsou 20 nebo 64. Toto vytvoří klíče z 40 do délky 128 bajtů. Výstup z kódu je celý <machinekey> prvek zkopírujte a vložte do souboru Machine.config.

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();
        }
    }
}
				

Generovat hodnoty hash

Nyní můžete Kompilovat aplikaci.

Spuštění aplikace z příkazového řádku podle předávání dvě celočíselné hodnoty jsou velikost dešifrování a ověření klíče. Například pokud s názvem aplikace konzoly HashConfigCs.exe zadejte v Bin\debug adresáři aplikace z příkazového řádku následující syntaxi:
hashconfigcs.exe 24 64
Očekáváte aplikace vrátit výstupu je podobný následující výstup:
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
            decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77"
            validation="SHA1"/>
					
Poznámka: Protože kód pomocí Generátor pseudonáhodných čísel, je výstup při každém jiný.


Aktualizovat konfigurační soubor

  1. Vyhledejte soubor Machine.config.
  2. Vyhledejte <system.web> oddílu konfiguračního souboru.
  3. Nahradit oddíl <machinekey>výstup z aplikace konzoly. Pokud oddíl <machinekey>neexistuje, vytvořte ji.
  4. Uložit konfigurační soubor.
  5. Na všechny servery webové farmy Machine.config změny se projeví po restartování služby IIS.

Odstraňování potíží

Zkontrolujte, zda má oddíl <machinekey>identické, explicitní klíče (tj nepoužívejteMožnost AutoGenerate atributy v oddílu <machinekey>) přes webové serverové farmy následující scénáře:
  • Při použití ověřování pomocí formulářů.
  • Při spuštění stavu relace v režimu StateServer.
  • Chcete-li vlastnost ViewState být k dispozici v rámci webové serverové farmy, protože atribut enableViewStateMAC je ve výchozím nastavení nastavena na hodnotu TRUE.

Další informace

Oddíl machineKey by měla být stejná přes webové farmy v následujících případech:
  • Při použití ověřování formulářů.
  • Při spuštění stavu relace v režimu StateServer.
  • Chcete li stav zobrazení k dispozici prostřednictvím webové farmy od enableViewStateMac je ve výchozím nastavení zapnuta.

Odkazy

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
301240Jak implementovat ověřování na základě formulářů v aplikaci ASP.NET pomocí C# .NET
311495Jak implementovat zabezpečení založené na rolích s ověřování na základě formulářů v aplikaci ASP.NET pomocí Visual C# .NET
306590INFORMACE: Přehled zabezpečení ASP.NET
307626INFORMACE: Přehled konfigurace ASP.NET

Vlastnosti

ID článku: 312906 - Poslední aktualizace: 11. července 2005 - Revize: 3.10
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
Klíčová slova: 
kbmt kbconfig kbhowtomaster kbsecurity kbstate KB312906 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:312906

Dejte nám zpětnou vazbu

 

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