Sdílet prostřednictvím


Ochrana připojovacích řetězců a dalších konfiguračních údajů (VB)

Scott Mitchell

Stáhnout PDF

Aplikace ASP.NET obvykle ukládá informace o konfiguraci do souboru Web.config. Některé z těchto informací jsou citlivé a vyžadují ochranu. Ve výchozím nastavení nebude tento soubor obsluhován návštěvníkovi webu, ale správce nebo hacker může získat přístup k systému souborů webového serveru a zobrazit obsah souboru. V tomto kurzu zjistíme, že ASP.NET 2.0 nám umožňuje chránit citlivé informace šifrováním oddílů Web.config souboru.

Úvod

Informace o konfiguraci pro ASP.NET aplikace se běžně ukládají do souboru XML s názvem Web.config. V průběhu těchto kurzů jsme několikkrát aktualizovali Web.config . Například při vytváření Northwind typed dataSet v prvním kurzu se do oddílu <connectionStrings> automaticky přidaly Web.config informace o připojovací řetězec. Později jsme v kurzu Stránky předlohy a Navigace na webu ručně aktualizovali Web.configa přidali <pages> prvek označující, že všechny ASP.NET stránky v našem projektu by měly používat DataWebControls motiv.

Vzhledem k tomu Web.config , že mohou obsahovat citlivá data, jako jsou připojovací řetězce, je důležité, aby byl obsah Web.config uchován v bezpečí a skrytý před neoprávněnými diváky. Ve výchozím nastavení všechny požadavky HTTP na soubor s .config příponou zpracovává modul ASP.NET, který vrátí zprávu Tento typ stránky není obsluhován zobrazenou na obrázku 1. To znamená, že návštěvníci nemohou zobrazit obsah souboru Web.config jednoduše zadáním http://www.YourServer.com/Web.config do adresního řádku prohlížeče.

Při návštěvě Web.config prostřednictvím prohlížeče se vrátí zpráva Tento typ stránky se neobsloužil.

Obrázek 1: Návštěva Web.config prostřednictvím prohlížeče vrátí zprávu Tento typ stránky se neobslouží Zpráva (kliknutím zobrazíte obrázek v plné velikosti).

Ale co když útočník najde nějaké jiné zneužití, které mu umožní zobrazit obsah vašeho Web.config souboru? Co by mohl útočník s touto informací dělat a jaké kroky je možné provést k další ochraně citlivých informací v rámci Web.config? Většina oddílů v Web.config souboru naštěstí citlivé informace neobsahuje. Jakou škodu může útočník způsobit, když zná název výchozího motivu používaného vašimi ASP.NET stránkami?

Některé Web.config části ale obsahují citlivé informace, které můžou zahrnovat připojovací řetězce, uživatelská jména, hesla, názvy serverů, šifrovací klíče atd. Tyto informace se obvykle nacházejí v následujících Web.config částech:

  • <appSettings>
  • <connectionStrings>
  • <identity>
  • <sessionState>

V tomto kurzu se podíváme na techniky ochrany takových citlivých informací o konfiguraci. Jak uvidíme, rozhraní .NET Framework verze 2.0 obsahuje systém chráněných konfigurací, který programově šifruje a dešifruje vybrané konfigurační oddíly.

Poznámka

Tento kurz končí tím, že se podíváte na doporučení Microsoftu pro připojení k databázi z ASP.NET aplikace. Kromě šifrování připojovacích řetězců můžete pomoct posílit zabezpečení systému tím, že zajistíte, že se k databázi připojujete zabezpečeným způsobem.

Krok 1: Prozkoumání možností chráněné konfigurace ASP.NET 2.0

ASP.NET 2.0 obsahuje chráněný konfigurační systém pro šifrování a dešifrování konfiguračních informací. To zahrnuje metody v rozhraní .NET Framework, které lze použít k programovému šifrování nebo dešifrování konfiguračních informací. Chráněný konfigurační systém používá model zprostředkovatele, který vývojářům umožňuje zvolit, jaká kryptografická implementace se použije.

Rozhraní .NET Framework se dodává se dvěma zprostředkovateli chráněných konfigurací:

Vzhledem k tomu, že chráněný konfigurační systém implementuje vzor návrhu zprostředkovatele, je možné vytvořit vlastního chráněného zprostředkovatele konfigurace a připojit ho k aplikaci. Další informace o tomto procesu najdete v tématu Implementace zprostředkovatele chráněné konfigurace .

Zprostředkovatelé RSA a DPAPI používají klíče pro své rutiny šifrování a dešifrování a tyto klíče mohou být uloženy na úrovni počítače nebo uživatele. Klíče na úrovni počítače jsou ideální pro scénáře, kdy webová aplikace běží na vlastním vyhrazeném serveru nebo pokud je na serveru více aplikací, které potřebují sdílet šifrované informace. Klíče na úrovni uživatele jsou bezpečnější možností ve sdílených hostitelských prostředích, kde by ostatní aplikace na stejném serveru neměly mít možnost dešifrovat oddíly konfigurace chráněné vaší aplikací.

V tomto kurzu budeme v našich příkladech používat zprostředkovatele DPAPI a klíče na úrovni počítače. Konkrétně se podíváme na šifrování oddílu <connectionStrings> v Web.config, i když k šifrování většiny oddílů Web.config se dá použít chráněný konfigurační systém. Informace o používání klíčů na úrovni uživatele nebo použití poskytovatele RSA najdete v části Další materiály na konci tohoto kurzu.

Poznámka

Zprostředkovatelé RSAProtectedConfigurationProvider a DPAPIProtectedConfigurationProvider se registrují v machine.config souboru s názvy RsaProtectedConfigurationProvider zprostředkovatelů a DataProtectionConfigurationProvider. Při šifrování nebo dešifrování konfiguračních informací budeme muset místo skutečného názvu typu ( a ) zadat příslušný název zprostředkovatele (RsaProtectedConfigurationProviderRSAProtectedConfigurationProvider nebo DataProtectionConfigurationProviderDPAPIProtectedConfigurationProvider). Soubor najdete machine.config ve $WINDOWS$\Microsoft.NET\Framework\version\CONFIG složce .

Krok 2: Šifrování a dešifrování konfiguračních oddílů prostřednictvím kódu programu

Pomocí několika řádků kódu můžeme zašifrovat nebo dešifrovat konkrétní konfigurační oddíl pomocí zadaného zprostředkovatele. Kód, jak uvidíme za chvíli, jednoduše potřebuje programově odkazovat na příslušný oddíl konfigurace, volat metodu ProtectSection nebo UnprotectSection a pak voláním Save metody zachovat změny. Rozhraní .NET Framework navíc obsahuje užitečný nástroj příkazového řádku, který může šifrovat a dešifrovat informace o konfiguraci. Tento nástroj příkazového řádku prozkoumáme v kroku 3.

Pro ilustraci ochrany informací o konfiguraci prostřednictvím kódu programu vytvoříme ASP.NET stránku, která obsahuje tlačítka pro šifrování a dešifrování oddílu <connectionStrings> v Web.configsouboru .

Začněte otevřením EncryptingConfigSections.aspx stránky ve AdvancedDAL složce . Přetáhněte ovládací prvek TextBox z panelu nástrojů na Designer a nastavte jeho ID vlastnost na WebConfigContents, jeho TextMode vlastnost na MultiLinea Width vlastnosti a Rows na 95 % a 15. Tento ovládací prvek TextBox zobrazí obsah, Web.config což nám umožní rychle zjistit, jestli je obsah šifrovaný nebo ne. Samozřejmě, ve skutečné aplikaci byste nikdy nechtěli zobrazovat obsah .Web.config

Pod TextBox přidejte dva ovládací prvky Tlačítko s názvy EncryptConnStrings a DecryptConnStrings. Nastavte vlastnosti Text na Šifrovat připojovací řetězce a Dešifrovat připojovací řetězce .

V tomto okamžiku by vaše obrazovka měla vypadat podobně jako na obrázku 2.

Snímek obrazovky znázorňující otevření sady Visual Studio na stránce EncryptingConfigSections.aspx, která obsahuje nové textové pole a dva ovládací prvky Tlačítko

Obrázek 2: Přidání webových ovládacích prvků TextBox a Two Button na stránku (kliknutím zobrazíte obrázek v plné velikosti)

Dále musíme napsat kód, který při prvním načtení stránky načte a zobrazí obsah Web.config objektu WebConfigContents v textovém poli. Do třídy kódu na pozadí stránky přidejte následující kód. Tento kód přidá metodu s názvem DisplayWebConfig a zavolá ji z obslužné Page_Load rutiny události, když Page.IsPostBack je False:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    'On the first page visit, call DisplayWebConfig method
    If Not Page.IsPostBack Then
        DisplayWebConfig()
    End If
End Sub
Private Sub DisplayWebConfig()
    'Reads in the contents of Web.config and displays them in the TextBox
    Dim webConfigStream As StreamReader = _
        File.OpenText(Path.Combine(Request.PhysicalApplicationPath, "Web.config"))
    Dim configContents As String = webConfigStream.ReadToEnd()
    webConfigStream.Close()
    WebConfigContents.Text = configContents
End Sub

Metoda DisplayWebConfig používá File třídu k otevření souboru s Web.config aplikace, StreamReader třídu ke čtení obsahu do řetězce a Path třídu k vygenerování fyzické cesty k Web.config souboru. Všechny tyto tři třídy se nacházejí v System.IO oboru názvů . V důsledku toho budete muset přidat Imports``System.IO příkaz na začátek třídy kódu na pozadí nebo alternativně před tyto názvy tříd přidat předponu System.IO.

Dále musíme přidat obslužné rutiny událostí pro dvě události ovládacích prvků Click Button a přidat potřebný kód pro šifrování a dešifrování oddílu <connectionStrings> pomocí klíče na úrovni počítače s zprostředkovatelem DPAPI. V Designer poklikejte na všechna tlačítka a přidejte obslužnou rutinu Click události do třídy code-behind a pak přidejte následující kód:

Protected Sub EncryptConnStrings_Click(sender As Object, e As EventArgs) _
    Handles EncryptConnStrings.Click
    'Get configuration information about Web.config
    Dim config As Configuration = _
        WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
    ' Let's work with the <connectionStrings> section
    Dim connectionStrings As ConfigurationSection = _
        config.GetSection("connectionStrings")
    If connectionStrings IsNot Nothing Then
        ' Only encrypt the section if it is not already protected
        If Not connectionStrings.SectionInformation.IsProtected Then
            ' Encrypt the <connectionStrings> section using the 
            ' DataProtectionConfigurationProvider provider
            connectionStrings.SectionInformation.ProtectSection( _
                "DataProtectionConfigurationProvider")
            config.Save()
            ' Refresh the Web.config display
            DisplayWebConfig()
        End If
    End If
End Sub
Protected Sub DecryptConnStrings_Click(sender As Object, e As EventArgs) _
    Handles DecryptConnStrings.Click
    ' Get configuration information about Web.config
    Dim config As Configuration = _
        WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
    ' Let's work with the <connectionStrings> section
    Dim connectionStrings As ConfigurationSection = _
        config.GetSection("connectionStrings")
    If connectionStrings IsNot Nothing Then
        ' Only decrypt the section if it is protected
        If connectionStrings.SectionInformation.IsProtected Then
            ' Decrypt the <connectionStrings> section
            connectionStrings.SectionInformation.UnprotectSection()
            config.Save()
            ' Refresh the Web.config display
            DisplayWebConfig()
        End If
    End If
End Sub

Kód použitý v těchto dvou obslužných rutinách událostí je téměř identický. Oba začínají získáním informací o aktuálním souboru s Web.config aplikace prostřednictvím WebConfigurationManager metody třídy sOpenWebConfiguration. Tato metoda vrátí konfigurační soubor webu pro zadanou virtuální cestu. Dále se k oddílu Web.config file s <connectionStrings> přistupuje prostřednictvím Configuration metody třídy sGetSection(sectionName), která vrací ConfigurationSection objekt.

Objekt ConfigurationSection obsahuje SectionInformation vlastnost , která poskytuje další informace a funkce týkající se oddílu konfigurace. Jak ukazuje výše uvedený kód, můžeme zjistit, jestli je konfigurační oddíl zašifrovaný, kontrolou SectionInformation vlastnosti s IsProtected . Kromě toho může být oddíl šifrovaný nebo dešifrovaný prostřednictvím SectionInformation vlastností ProtectSection(provider) a UnprotectSection metod.

Metoda ProtectSection(provider) přijímá jako vstup řetězec, který určuje název chráněného zprostředkovatele konfigurace, který se má použít při šifrování. V obslužné rutině EncryptConnString události Button s předáme do ProtectSection(provider) metody DataProtectionConfigurationProvider, aby se použil zprostředkovatel DPAPI. Metoda UnprotectSection může určit zprostředkovatele, který byl použit k šifrování konfiguračního oddílu, a proto nevyžaduje žádné vstupní parametry.

Po volání ProtectSection(provider) metody nebo UnprotectSection je nutné zavolat metodu objektu Configuration sSave, aby se změny zachovaly. Jakmile jsou konfigurační informace zašifrovány nebo dešifrovány a změny uloženy, voláme k DisplayWebConfig načtení aktualizovaného Web.config obsahu do ovládacího prvku TextBox.

Jakmile zadáte výše uvedený kód, otestujte ho EncryptingConfigSections.aspx tak, že navštívíte stránku v prohlížeči. Nejprve byste měli vidět stránku se seznamem obsahu Web.config s oddílem <connectionStrings> zobrazeným ve formátu prostého textu (viz Obrázek 3).

Snímek obrazovky znázorňující EncryptingConfigSections.aspx stránku načtenou ve webovém prohlížeči

Obrázek 3: Přidání webových ovládacích prvků TextBox a Dvoutlačítko na stránku (kliknutím zobrazíte obrázek v plné velikosti)

Teď klikněte na tlačítko Šifrovat připojovací řetězce. Pokud je povoleno ověření požadavku, kód vystavený zpět z Textového WebConfigContentsHttpRequestValidationExceptionpole vytvoří , který zobrazí zprávu, že klient zjistil potenciálně nebezpečnou Request.Form hodnotu. Ověření požadavku, které je ve výchozím nastavení povolené v ASP.NET 2.0, zakazuje zpětné odeslání, které obsahuje nezakódovaný kód HTML, a je navržené tak, aby pomáhalo předcházet útokům prostřednictvím injektáže skriptu. Tuto kontrolu je možné zakázat na úrovni stránky nebo aplikace. Pokud ho ValidateRequest chcete pro tuto stránku vypnout, nastavte v direktivě @Page na False hodnotu . Direktiva @Page se nachází v horní části deklarativního kódu stránky.

<%@ Page ValidateRequest="False" ... %>

Další informace o ověření požadavku, jeho účelu, jeho zakázání na úrovni stránky a aplikace a také o tom, jak kódovat kód HTML, najdete v tématu Ověření požadavku – prevence útoků skriptů.

Po zakázání ověření požadavku na stránku zkuste znovu kliknout na tlačítko Šifrovat připojovací řetězce. Při zpětném odeslání bude konfigurační soubor přístupný a jeho <connectionStrings> oddíl bude zašifrován pomocí zprostředkovatele DPAPI. TextBox se pak aktualizuje tak, aby zobrazoval nový Web.config obsah. Jak ukazuje obrázek 4, <connectionStrings> informace jsou teď šifrované.

Kliknutím na tlačítko Šifrovat připojovací řetězce zašifrujete <oddíl connectionString> .

Obrázek 4: Kliknutím na tlačítko Zašifrovat připojovací řetězce zašifrujete <connectionString> oddíl (kliknutím zobrazíte obrázek v plné velikosti)

Následuje šifrovaný <connectionStrings> oddíl vygenerovaný v mém počítači, i když byl kvůli stručnosti odebrán část obsahu elementu <CipherData> :

<connectionStrings 
    configProtectionProvider="DataProtectionConfigurationProvider">
  <EncryptedData>
    <CipherData>
      <CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
    </CipherData>
  </EncryptedData>
</connectionStrings>

Poznámka

Element <connectionStrings> určuje zprostředkovatele použitého k šifrování (DataProtectionConfigurationProvider). Tyto informace používá UnprotectSection metoda při kliknutí na tlačítko Dešifrovat připojovací řetězce.

Při přístupu k připojovací řetězec informacím z Web.config – buď kódem, který napíšeme, z ovládacího prvku SqlDataSource nebo automaticky vygenerovaným kódem z objektů TableAdapter v typed dataSets – se automaticky dešifrují. Stručně řečeno, k dešifrování šifrovaného <connectionString> oddílu nemusíme přidávat žádný další kód ani logiku. Pokud si to chcete předvést, navštivte v tuto chvíli některý z dřívějších kurzů, jako je například kurz jednoduchého zobrazení v části Základní vytváření sestav (~/BasicReporting/SimpleDisplay.aspx). Jak ukazuje obrázek 5, kurz funguje přesně tak, jak bychom očekávali, což znamená, že šifrované připojovací řetězec informace jsou automaticky dešifrovány ASP.NET stránkou.

Vrstva přístupu k datům automaticky dešifruje informace připojovacího řetězce.

Obrázek 5: Vrstva přístupu k datům automaticky dešifruje informace připojovacího řetězce (kliknutím zobrazíte obrázek v plné velikosti)

Pokud chcete oddíl vrátit <connectionStrings> zpátky do formátu prostého textu, klikněte na tlačítko Dešifrovat připojovací řetězce. Na postbacku byste měli vidět připojovací řetězce v Web.config souboru ve formátu prostého textu. V tomto okamžiku by vaše obrazovka měla vypadat jako při první návštěvě této stránky (viz obrázek 3).

Krok 3: Šifrování oddílů konfigurace pomocí aspnet_regiis.exe

Rozhraní .NET Framework obsahuje ve složce celou řadu nástrojů příkazového $WINDOWS$\Microsoft.NET\Framework\version\ řádku. V kurzu Používání závislostí mezipaměti SQL jsme se například podívali na použití nástroje příkazového aspnet_regsql.exe řádku k přidání infrastruktury nezbytné pro závislosti mezipaměti SQL. Dalším užitečným nástrojem příkazového řádku v této složce je ASP.NET nástroj pro registraci služby IIS (aspnet_regiis.exe). Jak už název napovídá, nástroj ASP.NET pro registraci služby IIS se primárně používá k registraci aplikace ASP.NET 2.0 na profesionálním webovém serveru společnosti Microsoft IIS. Kromě funkcí souvisejících se službou IIS lze nástroj ASP.NET REGISTRACE SLUŽBY IIS použít také k šifrování nebo dešifrování zadaných konfiguračních oddílů v nástroji Web.config.

Následující příkaz ukazuje obecnou syntaxi použitou k šifrování konfiguračního oddílu pomocí nástroje příkazového aspnet_regiis.exe řádku:

aspnet_regiis.exe -pef section physical_directory -prov provider

je konfigurační oddíl pro šifrování (například connectionStrings), physical_directory je úplná fyzická cesta ke kořenovému adresáři webové aplikace a provider je název chráněného zprostředkovatele konfigurace, který se má použít (například DataProtectionConfigurationProvider ). Pokud je webová aplikace zaregistrovaná ve službě IIS, můžete místo fyzické cesty zadat virtuální cestu pomocí následující syntaxe:

aspnet_regiis.exe -pe section -app virtual_directory -prov provider

Následující aspnet_regiis.exe příklad zašifruje <connectionStrings> oddíl pomocí zprostředkovatele DPAPI s klíčem na úrovni počítače:

aspnet_regiis.exe -pef
"connectionStrings" "C:\Websites\ASPNET_Data_Tutorial_73_VB"
-prov "DataProtectionConfigurationProvider"

Podobně aspnet_regiis.exe lze k dešifrování konfiguračních oddílů použít nástroj příkazového řádku. Místo přepínače -pef použijte -pdf (nebo místo -pepoužijte ).-pd Všimněte si také, že název zprostředkovatele není při dešifrování nutný.

aspnet_regiis.exe -pdf section physical_directory
  -- or --
aspnet_regiis.exe -pd section -app virtual_directory

Poznámka

Vzhledem k tomu, že používáme zprostředkovatele DPAPI, který používá klíče specifické pro daný počítač, musíte spustit aspnet_regiis.exe ze stejného počítače, ze kterého se webové stránky obsluhují. Pokud například spustíte tento program příkazového řádku z místního vývojového počítače a potom nahrajete šifrovaný soubor Web.config na produkční server, produkční server nebude moct připojovací řetězec informace dešifrovat, protože byly zašifrované pomocí klíčů specifických pro váš vývojový počítač. Poskytovatel RSA toto omezení nemá, protože klíče RSA je možné exportovat do jiného počítače.

Principy možností ověřování databáze

Před tím, INSERTUPDATEDELETE než může nějaká aplikace vydat SELECTdotazy na databázi Microsoft SQL Server, musí databáze nejprve identifikovat žadatele. Tento proces se označuje jako ověřování a SQL Server poskytuje dvě metody ověřování:

  • Ověřování systému Windows – proces, ve kterém je aplikace spuštěná, se používá ke komunikaci s databází. Při spuštění aplikace ASP.NET prostřednictvím sady Visual Studio 2005 s ASP.NET Development Server ASP.NET aplikace přebírá identitu aktuálně přihlášeného uživatele. Pro ASP.NET aplikace na serveru Microsoft Internet Information Server (IIS), ASP.NET aplikace obvykle přebírají identitu domainName``\MachineName nebo domainName``\NETWORK SERVICE, i když tuto identitu lze přizpůsobit.
  • Ověřování SQL – hodnoty ID uživatele a hesla se zadají jako přihlašovací údaje pro ověřování. Při ověřování SQL se ID uživatele a heslo zadají v připojovací řetězec.

Ověřování systému Windows je upřednostňováno před ověřováním SQL, protože je bezpečnější. Při ověřování systému Windows připojovací řetězec neobsahuje uživatelské jméno a heslo, a pokud se webový a databázový server nacházejí na dvou různých počítačích, přihlašovací údaje se neposílají přes síť ve formátu prostého textu. Při ověřování SQL jsou přihlašovací údaje pevně zakódované v připojovací řetězec a přenášejí se z webového serveru na databázový server ve formátu prostého textu.

V těchto kurzech se používá ověřování systému Windows. To, jaký režim ověřování se používá, poznáte tak, že zkontrolujete připojovací řetězec. Naše kurzy připojovací řetězecWeb.config:

Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True

Hodnota Integrated Security=True a chybějící uživatelské jméno a heslo značí, že se používá ověřování systému Windows. V některých připojovacích řetězcích se místo Integrated Security=True používá termín Důvěryhodné připojení=Ano nebo Integrated Security=SSPI, ale všechny tři označují použití ověřování systému Windows.

Následující příklad ukazuje připojovací řetězec, který používá ověřování SQL. Poznamenejte si přihlašovací údaje vložené v připojovací řetězec:

Server=serverName; Database=Northwind; uid=userID; pwd=password

Představte si, že útočník může zobrazit soubor vaší Web.config aplikace. Pokud používáte ověřování SQL pro připojení k databázi, která je přístupná přes internet, útočník může tuto připojovací řetězec použít pro připojení k databázi přes SQL Management Studio nebo ze ASP.NET stránek na vlastním webu. Pokud chcete tuto hrozbu zmírnit, zašifrujte připojovací řetězec informace pomocí Web.config chráněného konfiguračního systému.

Poznámka

Další informace o různých typech ověřování dostupných v SQL Server najdete v tématu Vytváření zabezpečených ASP.NET aplikací: Ověřování, autorizace a zabezpečená komunikace. Další připojovací řetězec příklady, které ilustrují rozdíly mezi syntaxí ověřování systému Windows a SQL, najdete v tématu ConnectionStrings.com.

Souhrn

Ve výchozím nastavení nelze k souborům s příponou .config v aplikaci ASP.NET přistupovat přes prohlížeč. Tyto typy souborů se nevrátí, protože můžou obsahovat citlivé informace, jako jsou databázové připojovací řetězce, uživatelská jména a hesla atd. Chráněný konfigurační systém v .NET 2.0 pomáhá dále chránit citlivé informace tím, že umožňuje šifrování zadaných konfiguračních oddílů. Existují dva předdefinované zprostředkovatelé chráněné konfigurace: jeden, který používá algoritmus RSA, a druhý, který používá rozhraní WINDOWS Data Protection API (DPAPI).

V tomto kurzu jsme se podívali na šifrování a dešifrování nastavení konfigurace pomocí zprostředkovatele DPAPI. To lze provést jak programově, jak jsme viděli v kroku 2, tak prostřednictvím nástroje příkazového aspnet_regiis.exe řádku, který byl popsán v kroku 3. Další informace o použití klíčů na úrovni uživatele nebo použití poskytovatele RSA najdete v materiálech v části Další materiály.

Všechno nejlepší na programování!

Další čtení

Další informace o tématech probíraných v tomto kurzu najdete v následujících zdrojích informací:

O autorovi

Scott Mitchell, autor sedmi knih o ASP/ASP.NET a zakladatel 4GuysFromRolla.com, pracuje s webovými technologiemi Microsoftu od roku 1998. Scott pracuje jako nezávislý konzultant, školitel a spisovatel. Jeho nejnovější kniha je Sams Teach Yourself ASP.NET 2.0 in 24 Hours. Můžete ho zastihnout na mitchell@4GuysFromRolla.comadrese . nebo prostřednictvím jeho blogu, který najdete na adrese http://ScottOnWriting.NET.

Zvláštní poděkování

Tato série kurzů byla zkontrolována mnoha užitečnými recenzenty. Hlavními recenzenty pro tento kurz byli Teresa Murphy a Randy Schmidt. Chtěli byste si projít své nadcházející články na webu MSDN? Pokud ano, dejte mi řádek na mitchell@4GuysFromRolla.com.