16 – Přidání zabezpečení a členství

 
 

 

Tato kapitola ukazuje, jak zabezpečit web tak, aby některé stránky byly dispozici pouze přihlášeným uživatelům. (Dozvíte se také, jak vytvořit stránky, ke kterým může přistupovat kdokoli.)

Co se naučíte:

V této kapitole budou představeny následující funkce technologie ASP.NET:

 

 

úvod do poskytování členství na webu

Svůj web můžete nastavit tak, aby se k němu uživatelé mohli přihlásit, tedy aby podporoval členství. To může být užitečné z mnoha důvodů. Web například může mít funkce, které jsou k dispozici pouze pro členy. V některých případech můžete požadovat, aby se uživatelé přihlásili, pokud vám chtějí zaslat své podněty nebo přidat komentář.

I pokud web podporuje členství, není nutné, aby se uživatelé museli vždy nejdříve přihlásit, pokud chtějí používat některé stránky na webu. Nepřihlášení uživatelé jsou označováni jako anonymní uživatelé.

Uživatelé se mohou na webu zaregistrovat a poté se k němu přihlásit. Web vyžaduje uživatelské jméno (často to bývá e-mailová adresa) a heslo pro potvrzení toho, že uživatel je tím, za koho se vydává. Proces přihlášení a potvrzení identity uživatele bývá označován jako ověřování.

V prostředí WebMatrix můžete pomocí šablony Starter Site (Počáteční web) vytvořit web obsahující následující funkce:

Poznámka   I když šablona Starter Site (Počáteční web) pro vás tyto stránky vytvoří automaticky, v této kapitole ručně vytvoříme jejich zjednodušené verze, abyste si osvojili základy zajištění zabezpečení a členství pomocí technologie ASP.NET.

Vytvoření webu se stránkami pro registraci a přihlášení

  1. Spusťte prostředí WebMatrix.
  2. Na stránce Quick Start (Rychlý začátek) vyberte položku Site From Template (Web ze šablony).
  3. Vyberte šablonu Starter Site (Počáteční web) a klikněte na tlačítko OK. WebMatrix vytvoří nový web.
  4. V levém podokně klikněte na selektor pracovního prostředí Files (Soubory).
  5. V kořenové složce webu otevřete soubor _startup.cshtml. Jedná se o speciální soubor obsahující globální nastavení. Některé příkazy v něm obsažené jsou pomocí znaků // označeny jako komentáře:
    @{ 
       WebSecurity.InitializeDatabaseConnection("StarterSite", "UserProfile", "UserId", 
             "Email", true); 
        // WebMail.SmtpServer = "mailserver.example.com"; 
        // WebMail.EnableSsl = true; 
        // WebMail.UserName = "username@example.com"; 
        // WebMail.Password = "your-password"; 
        // WebMail.From = "your-name-here@example.com"; 
    }

    K odesílání e-mailů můžete použít pomocnou třídu WebMail (Webová pošta). Ta následně vyžaduje přístup k serveru SMTP, jak popisuje kapitola 11 – Přidání e-mailu na web. V této kapitole jste se dozvěděli, jak nastavit různá nastavení protokolu SMTP v jedné stránce. V této kapitole použijeme stejná nastavení, ale uložíme je v jednom centrálním souboru, aby nebylo třeba neustále přidávat kód do všech stránek. (Pro zřízení registrační databáze není nutné konfigurovat nastavení protokolu SMTP. Nastavení protokolu SMTP jsou zapotřebí pouze v případě, že budete chtít ověřovat uživatele z jejich e-mailové adresy nebo jim poskytnout možnost vytvořit nové heslo pro případ, že své heslo zapomenou.)

  6. Odstraňte označení příkazů jako komentáře. (Odstraňte znaky // před jednotlivými příkazy.)
  7. Upravte v kódu následující nastavení e-mailu:
  8. Uložte a zavřete soubor _AppStart.cshtml.
  9. Otevřete soubor Default.cshtml.

    ch16securitymembership-1

  10. Spusťte stránku Default.cshtml v prohlížeči.

    ch16securitymembership-2

  11. V pravém horním rohu stránky klikněte na odkaz Register (Zaregistrovat).
  12. Zadejte uživatelské jméno a heslo a pak klikněte na tlačítko Register (Zaregistrovat).

    ch16securitymembership-3

    Při vytvoření webu ze šablony Starter Site (Počáteční web) byla na webu ve složce App_Data vytvořena databáze s názvem StarterSite.sdf. Při registraci jsou vaše uživatelské informace přidány do této databáze. Na uvedenou e-mailovou adresu je odeslána zpráva umožňující registraci dokončit.

    ch16securitymembership-4

  13. Přejděte do svého e-mailového programu a vyhledejte zprávu, která obsahuje váš potvrzovací kód a hypertextový odkaz na web.
  14. Kliknutím na odkaz svůj účet zaktivujte. Pomocí potvrzovacího odkazu bude otevřena stránka s potvrzením registrace.

    ch16securitymembership-5

  15. Klikněte na odkaz Login (Přihlásit se) a poté se přihlaste pomocí účtu, který jste právě zaregistrovali.

    Po přihlášení budou odkazy Login (Přihlásit se) a Register (Zaregistrovat) nahrazeny odkazem Logout (Odhlásit se).

    ch16securitymembership-6

  16. Klikněte na odkaz About (O webu).

    Bude zobrazena stránka About.cshtml. Po přihlášení je zatím jedinou viditelnou změnou změněný stav přihlášení – zpráva Welcome Joe! (Vítejte, Joe!) a odkaz Logout (Odhlásit se).

    Poznámka    Webové stránky ASP.NET ve výchozím nastavení odesílají pověření na server jako prostý text (text čitelný pro člověka). Web používaný v produkčním prostředí by měl citlivé informace vyměňované se serverem šifrovat pomocí zabezpečeného protokolu HTTP (https://, také označovaného jako protokol Secure Sockets Layer neboli SSL). Citlivé informace můžete zašifrovat pomocí nastavení WebMail.EnableSsl=true stejně jako v předchozím příkladu. Další informace o protokolu SSL získáte v článku Zabezpečení komunikace na webu: certifikáty, SSL a https://.

Vytvoření stránky dostupné pouze pro členy

Prozatím kdokoli může procházet všechny stránky na webu. Ale možná chcete mít stránky, které jsou k dispozici jen pro přihlášené uživatele (tj. členy). ASP.NET umožňuje nakonfigurovat stránky tak, aby k nim měli přístup jen přihlášení členové. Když se anonymní uživatel pokusí přistoupit ke stránce určené pouze pro členy, je obvykle přesměrován na stránku pro přihlášení.

V rámci tohoto postupu omezíme přístup ke stránce About (O webu), About.cshtml, tak, aby k ní měli přístup jen přihlášení členové.

  1. Otevřete soubor About.cshtml. Tato stránka s obsahem používá stránku _SiteLayout.cshtml jako svou stránku s rozložením. (Více informací o stránkách s rozložením najdete v kapitole 3 – Vytvoření konzistentního vzhledu.)
  2. Veškerý kód v souboru About.cshtml nahraďte následujícím kódem. Tento kód testuje vlastnost IsAuthenticated (Je ověřen) objektu WebSecurity (Zabezpečení webu), která vrací hodnotu true, pokud je uživatel přihlášen. V opačném případě kód volá metodu Response.Redirect (Odpověď.Přesměrovat), čímž uživatele přesměruje na stránku Login.cshtml (Přihlášení) ve složce Account (účet). Kompletní soubor About.cshtml vypadá takto:  
    @if (!WebSecurity.IsAuthenticated) { 
          Response.Redirect("/Account/Login"); 
     } 
     
    @{ 
        Layout = "/_SiteLayout.cshtml"; 
        Page.Title = "About My Site"; 
    } 
     
    <p> 
    This web page was built using ASP.NET Web Pages. For more information, 
    visit the ASP.NET home page at <a href="http://www.asp.net" target="_blank">http://www.asp.net</a> 
    </p>
    Poznámka   Adresy URL v tomto příkladu (například /Account/Login) nezahrnují příponu souboru .cshtml. ASP.NET nevyžaduje, aby adresy URL, které se odkazují na stránky CSHTML, obsahovaly přípony souborů. Další informace najdete v části věnované směrování v kapitole 18 – úpravy chování s platností na celém webu.
  3. Spusťte stránku Default.cshtml v prohlížeči. Pokud jste k webu přihlášeni, klikněte na odkaz Logout (Odhlásit se).
  4. Klikněte na odkaz About (O webu). Budete přesměrováni na stránku Login.cshtml, protože nejste přihlášeni.

    Pro zabezpečení přístupu k více stránkám můžete buď přidat kontrolu zabezpečení do všech stránek, nebo můžete vytvořit stránku s rozložením podobnou stránce _SiteLayout.cshtml, která zahrnuje kontrolu zabezpečení. Na tuto stránku obsahující kontrolu zabezpečení byste se pak odkazovali z ostatních stránek na webu, stejně jako se stránka Default.cshtml momentálně odkazuje na stránku _SiteLayout.cshtml.

Vytvoření zabezpečení pro skupiny uživatelů (role)

Pokud má web hodně členů, není efektivní, abyste kontrolovali oprávnění jednotlivých uživatelů předtím, než jim umožníte si stránku prohlédnout. Místo toho můžete vytvořit skupiny neboli role, do nichž jednotliví členové patří. Oprávnění pak můžete kontrolovat na základě rolí. V této části vytvoříme roli „admin“ (správce) a poté vytvoříme stránku přístupnou uživatelům, kteří jsou součástí (patří do) této role.

Nejdříve musíme přidat informace o rolích do databáze členů.

  1. V prostředí WebMatrix klikněte na selektor pracovního prostředí Databases (Databáze).
  2. V levém podokně otevřete uzel StarterSite.sdf, dále otevřete uzel Tables (Tabulky) a poté dvakrát klikněte na tabulku webpages_Roles (webové stránky_Role).

    ch16securitymembership-7

  3. Přidejte roli s názvem „admin“ (správce). Pole RoleId (ID role) je vyplněno automaticky. (Jedná se o primární klíč a toto pole bylo nastaveno jako pole identity, jak vysvětluje kapitola 5 – Práce s daty.)
  4. Poznamenejte si hodnotu pole RoleId. (Pokud definujete první roli, bude hodnota 1.)

    ch16securitymembership-8

  5. Zavřete tabulku webpages_Roles.
  6. Otevřete tabulku UserProfile (Profily uživatelů).
  7. Poznamenejte si hodnotu pole UserId (ID uživatele) pro jednoho nebo více uživatelů uvedených v tabulce a pak tabulku zavřete.
  8. Otevřete tabulku webpages_UsersInRoles (webové stránky_Uživatelé v rolích) a zadejte do této tabulky hodnoty UserID a RoleID. Pokud byste například chtěli do role „admin“ (správce) přidat uživatele 3, pak byste zadali tyto hodnoty:

    ch16securitymembership-10

  9. Zavřete tabulku webpages_UsersInRoles.

    Teď, když jsou role nadefinované, můžeme stránku nakonfigurovat tak, aby byla přístupná uživatelům, kteří patří do této role.

  10. V kořenové složce webu vytvořte novou stránku s názvem AdminError.cshtml a místo obsahu vložte následující kód. Na tuto stránku budou uživatelé přesměrováni, pokud jim nebude povolen přístup ke stránce.
    @{ 
        Layout = "/_SiteLayout.cshtml"; 
        PageData["Title"] = "Admin-only Error"; 
    } 
    <p>You must log in as an admin to access that page.</p>
  11. V kořenové složce webu vytvořte novou stránku s názvem AdminOnly.cshtml a místo obsahu vložte následující kód:
    @{ 
        Layout = "/_SiteLayout.cshtml"; 
        PageData["Title"] = "Administrators only"; 
    } 
     
    @if ( Roles.IsUserInRole("admin")) { 
        <span> Welcome <b>@WebSecurity.CurrentUserName</b>! </span> 
    } 
    else { 
         Response.Redirect("/AdminError"); 
    }

    Metoda Roles.IsUserInRole (Role.Je uživatel v roli) vrací hodnotu true, pokud je aktuální uživatel členem role „admin“ (správce).

  12. Spusťte stránku Default.cshtml v prohlížeči, ale nepřihlašujte se. (Pokud jste už přihlášeni, odhlaste se.)
  13. V prohlížeči na panelu Adresa změňte text Default v adrese URL na AdminOnly. (Jinými slovy, vyžádejte soubor AdminOnly.cshtml.) Budete přesměrováni na stránku AdminError.cshtml, protože nejste momentálně přihlášeni jako uživatel s rolí „admin“ (správce).
  14. Vraťte se na stránku Default.cshtml a přihlaste se jako uživatel, kterého jste přidali do role „admin“ (správce).
  15. Přejděte na stránku AdminOnly.cshtml. Tentokrát bude stránka zobrazena.

Vytvoření stránky pro změnu hesla

Uživatelům můžete poskytnout možnost změnit své heslo tak, že vytvoříte stránku pro změnu hesla. Tento příklad ukazuje základy stránky vytvořené za tímto účelem. (Součástí šablony Starter Site je soubor ChangePassword.cshtml obsahující úplnější kontrolu chyb než stránka, kterou vytvoříte v rámci tohoto postupu.)

ch16securitymembership-11

  1. Ve složce Account (účet) na webu vytvořte stránku s názvem ChangePassword2.cshtml.
  2. Obsah stránky nahraďte následujícím kódem:
    @{ 
       Layout = "/_SiteLayout.cshtml"; 
       PageData["Title"] = "Change Password"; 
     
       var message = ""; 
       if(IsPost) { 
     
            string username = Request["username"]; 
            string newPassword = Request["newPassword"]; 
            string oldPassword = Request["oldPassword"]; 
     
            if(WebSecurity.ChangePassword(username, oldPassword, newPassword)) { 
                message="Password changed successfully!"; 
            } 
            else 
           { 
               message="Password could not be changed."; 
           } 
        } 
    } 
    <style> 
            .message  {font-weight:bold; color:red; margin:10px;} 
    </style> 
    <form method="post" action=""> 
    Uživatelské jméno: <input type="text" name="username" 
        value="@WebSecurity.CurrentUserName" /> 
      <br/> 
      Old Password: <input type="password" name="oldPassword" value="" /> 
      <br/> 
      New Password: <input type="password" name="newPassword" value="" /> 
      <br/><br/> 
      <input type="submit" value="Change Password" /> 
      <div class="message">@message</div> 
      <div><a href="Default.cshtml">Return to home page</a></div> 
    </form>

    Tělo stránky obsahuje textová pole, pomocí nichž uživatelé mohou zadat své uživatelské jméno a staré a nové heslo. V kódu voláme metodu ChangePassword (Změnit heslo) pomocné třídy WebSecurity (Zabezpečení webu) a předáváme jí hodnoty, které jsme získali od uživatele.

  3. Spusťte stránku v prohlížeči. Pokud jste už přihlášeni, vaše uživatelské jméno bude zobrazeno na stránce.
  4. Zkuste zadat své staré heslo nesprávně. Pokud nezadáte správné heslo, volání metody WebSecurity.ChangePassword (Zabezpečení webu.Změnit heslo) bude neúspěšné a bude zobrazena chybová zpráva.

    ch16securitymembership-12

  5. Zadejte platné hodnoty a zkuste znovu změnit heslo.

Vygenerování nového hesla uživatele

Pokud uživatelé zapomenou své heslo, můžete jim dovolit, aby vygenerovali heslo nové. (Je to něco jiného než změna hesla, které znají.) Abychom uživatelům umožnili získat nové heslo, vygenerujeme token pomocí metody GeneratePasswordResetToken (Vygenerovat token pro vytvoření nového hesla) pomocné třídy WebSecurity (Zabezpečení webu). (Token je kryptograficky zabezpečený řetězec odeslaný uživateli, který uživatele jednoznačně identifikuje, například za účelem vytvoření nového hesla.) Tento postup ukazuje typický způsob, jak to všechno lze provést – vygenerovat token, odeslat jej uživateli v e-mailu a poté jej odkázat na stránku, která token přečte a umožní uživateli zadat nové heslo. Odkaz, který uživatel obdrží v e-mailu, bude vypadat přibližně takto:

http://localhost:36916/Account/PasswordReset2?PasswordResetToken=08HZGH0ALZ3CGz3

Náhodně vypadající znaky na konci adresy URL představují token.

(Součástí šablony Starter Site je soubor ForgotPassword.cshtml, který obsahuje úplnější kontrolu chyb než níže uvedený příklad.)

ch16securitymembership-13

  1. Ve složce Account (účet) na webu vytvořte novou stránku s názvem ForgotPassword2.cshtml.
  2. Stávající obsah nahraďte následujícím kódem:
    @{ 
      Layout = "/_SiteLayout.cshtml"; 
      PageData["Title"] = "Forgot your password?"; 
     
      var message = ""; 
      var username = ""; 
     
      if (WebMail.SmtpServer.IsEmpty() ){ 
        // Výchozí konfigurace protokolu SMTP probíhá v souboru _start.cshtml. 
        message = "Please configure the SMTP server."; 
       } 
     
      if(IsPost) { 
        username = Request["username"]; 
        var resetToken = WebSecurity.GeneratePasswordResetToken(username); 
     
        var portPart = ":" + Request.Url.Port; 
        var confirmationUrl = Request.Url.Scheme 
          + "://" 
          + Request.Url.Host 
          + portPart 
          + VirtualPathUtility.ToAbsolute("/Account/PasswordReset2?PasswordResetToken=" 
          + Server.UrlEncode(resetToken)); 
     
        WebMail.Send( 
          to: username, 
          subject: "Password Reset", 
          body: @"Your reset token is:<br/><br/>" 
            + resetToken 
            + @"<br/><br/>Visit <a href=""" 
            + confirmationUrl 
            + @""">" 
            + confirmationUrl 
            + @"</a> to activate the new password." 
        ); 
     
        message = "An email has been sent to " + username 
            + " with a password reset link."; 
      } 
    } 
    <style> 
        .message  {font-weight:bold; color:red; margin:10px;} 
    </style> 
    <form method="post" action=""> 
     
      @if(!message.IsEmpty()) { 
        <div class="error">@message</div> 
      } else{ 
      <div> 
      Enter your email address: <input type="text" name="username" /> <br/> 
      <br/><br/> 
      <input type="submit" value="Get New Password" /> 
      </div> 
      } 
    </form>

    Tělo stránky obsahuje textové pole, které uživatele vyzývá k zadání e-mailové adresy. Když uživatel formulář odešle, nejprve ověříme, že byl nastaven protokol SMTP pro pomocnou třídu Mail, protože účelem této stránky je odeslání e-mailu.

    Jádrem stránky je vygenerování tokenu pro vytvoření nového hesla, což provedeme následujícím způsobem a předáme při tom e-mailovou adresu (uživatelské jméno) poskytnutou uživatelem:

    string resetToken = WebSecurity.GeneratePasswordResetToken(username);

    Zbytek kódu je určen pro odeslání e-mailové zprávy. Většina kódu byla převzata ze souboru Register.cshtml, který je součástí webu vytvořeného ze šablony.

    Vlastní odeslání e-mailu provedeme s použitím pomocné třídy WebMail (Webová pošta) voláním její metody Send (Odeslat). Tělo e-mailu je vytvořeno zřetězením proměnných a řetězců, které obsahující text a také elementy jazyka HTML. Tělo e-mailu, který uživatel obdrží, vypadá asi takto:

    ch16securitymembership-14

  3. Ve složce Account (účet) vytvořte další novou stránku s názvem PasswordReset2.cshtml a její obsah nahraďte následujícím kódem:
    @{ 
      Layout  = "/_SiteLayout.cshtml"; 
      PageData["Title"] = "Password Reset"; 
     
      var message = ""; 
      var passwordResetToken = ""; 
     
      if(IsPost) { 
        var newPassword = Request["newPassword"]; 
        var confirmPassword = Request["confirmPassword"]; 
        passwordResetToken = Request["passwordResetToken"]; 
     
        if( !newPassword.IsEmpty() && 
           newPassword == confirmPassword && 
           WebSecurity.ResetPassword(passwordResetToken, newPassword)) { 
              message = "Password changed!"; 
        } 
        else { 
          message = "Password could not be reset."; 
        } 
      } 
    } 
    <style> 
        .message  {font-weight:bold; color:red; margin:10px;} 
    </style> 
    <div class="message">@message</div> 
    <form method="post" action=""> 
      Enter your new password: <input type="password" name="newPassword" /> <br/> 
      Confirm new password:    <input type="password" name="confirmPassword" /><br/> 
      <br/> 
      <input type="submit" value="Submit"/> 
    </form>

    Tato stránka je spuštěna, když uživatel klikne na odkaz v e-mailu pro vytvoření nového hesla. Tělo stránky obsahuje textová pole, pomocí nichž uživatel může zadat a potvrdit nové heslo.

    Token pro vytvoření nového hesla získáme z adresy URL přečtením položky Request["PasswordResetToken"]. Musíte mít na paměti, že adresa URL bude vypadat přibližně takto:

    http://localhost:36916/Account/PasswordReset2?PasswordResetToken=08HZGH0ALZ3CGz3

    Kód získá token (v tomto příkladu 08HZGH0ALZ3CGz3) a poté zavolá metodu ResetPassword (Vytvořit nové heslo) pomocné třídy WebSecurity (Zabezpečení webu) a předá jí token spolu s novým heslem. Pokud je token platný, pomocná třída aktualizuje heslo uživatele, který token obdržel e-mailem. V případě, že nové heslo bylo úspěšně vytvořeno, metoda ResetPassword vrací hodnotu true.

    V tomto příkladu je volání metody ResetPassword (Vytvořit nové heslo) spojeno s dalšími ověřeními pomocí operátoru && (logická spojka A). Logika je taková, že vytvoření nového hesla je úspěšné, pokud:

  4. Spusťte stránku ForgotPassword2.cshtml v prohlížeči.

    ch16securitymembership-15

  5. Zadejte svou e-mailovou adresu a poté klikněte na tlačítko Get New Password (Získat nové heslo). Stránka odešle e-mail. (Při provedení této operace může někdy nastat krátká prodleva.)

    ch16securitymembership-16

  6. Zkontrolujte svou poštu a vyhledejte zprávu s předmětem Password Reset (Vytvoření nového hesla).
  7. Klikněte na odkaz uvedený v e-mailu. Odkaz vás zavede na stránku PasswordReset2.cshtml.
  8. Zadejte nové heslo a poté klikněte na tlačítko Submit (Odeslat).

    ch16securitymembership-17

Znemožnění vytváření členství na webu pomocí automatizovaných programů

Přihlašovací stránka nezabrání v registraci na webu automatizovaným programům (někdy označovaným jako weboví roboti nebo programy bot). (Programy bot se často snaží připojovat ke skupinám uživatelů, aby mohli vystavovat adresy URL produktů nabízených k prodeji.) Že uživatel je skutečná osoba a nikoli počítačový program, se můžete ujistit pomocí testu CAPTCHA pro ověření vstupu. Akronym CAPTCHA je vytvořen ze slov Completely Automated Public Turing test to tell Computers and Humans Apart (Zcela automatizovaný veřejný Turingův test pro rozlišení počítačů a lidí).

Na stránkách ASP.NET můžete test CAPTCHA vykreslit s použitím pomocné třídy ReCaptcha založené na službě reCAPTCHA (http://recaptcha.net). Pomocná třída ReCaptcha zobrazí obrázek se dvěma zkreslenými slovy, která uživatel musí správně zadat, aby stránka byla ověřena. Odpověď uživatele je ověřena službou ReCaptcha.Net.

ch16securitymembership-18

  1. Zaregistrujte svůj web na webu služby ReCaptcha.Net (http://recaptcha.net). Po dokončení registrace získáte veřejný a privátní klíč.
  2. Pokud jste ji ještě nepřidali, přidejte na svůj web knihovnu pomocných webových tříd ASP.NET tak, jak popisuje kapitola 1 – Začínáme se sadou WebMatrix a webovými stránkami ASP.NET.
  3. Ve složce Account (účet) otevřete soubor s názvem Register.cshtml.
  4. Odstraňte znaky komentáře // před proměnnou captchaMessage (zpráva testu CAPTCHA).
  5. Místo textu PRIVATE_KEY (PRIVáTNí_KLíČ) vložte řetězec se svým privátním klíčem.
  6. Odstraňte znaky komentáře // z řádku obsahujícího volání metody ReCaptcha.Validate (ReCaptcha.Ověřit).

    Následující příklad ukazuje hotový kód. Místo textu user-key-here (sem přijde klíč uživatele) vložte svůj klíč.

    
    // Ověření odpovědi uživatele
     if (!ReCaptcha.Validate("user-key-here")) { 
       captchaMessage = "Response was not correct"; 
       isValid = false; 
    }
  1. Na konci stránky Register.cshtml nahraďte text PUBLIC_KEY (VEŘEJNý_KLíČ) řetězcem s vaším veřejným klíčem.
  2. Odstraňte znaky komentáře z řádku obsahujícího volání pomocné třídy ReCaptcha. Následující příklad ukazuje hotový kód (pouze musíte vložit svůj kód místo textu user-key-here):

    @ReCaptcha.GetHtml("user-key-here", theme: "white")

  3. Spusťte stránku Default.cshtml v prohlížeči. Pokud jste k webu přihlášeni, klikněte na odkaz Logout (Odhlásit se).
  4. Klikněte na odkaz Register (Zaregistrovat) a vyzkoušejte registraci využívající test CAPTCHA.

    ch16securitymembership-19

    Poznámka   Pokud se váš počítač nachází v doméně využívající proxy server, budete možná muset nakonfigurovat element defaultproxy (výchozí proxy server) v souboru Web.config. Následující příklad ukazuje soubor Web.config, ve kterém byl nakonfigurován element defaultproxy, tak aby mohla fungovat služba reCAPTCHA.
    <?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
      <system.net> 
          <defaultProxy> 
             <proxy 
                usesystemdefault = "false" 
                proxyaddress="http://myProxy.MyDomain.com" 
                bypassonlocal="true" 
                autoDetect="False" 
             /> 
          </defaultProxy> 
       </system.net> 
    </configuration>

Další materiály

Kapitola 18 – úpravy chování s platností na celém webu

Zabezpečení komunikace na webu: certifikáty, SSL a https://