Programovanie

Ako pracovať s cookies v ASP.NET Core

Cookie je údaj, ktorý sa zvyčajne používa na ukladanie informácií o používateľovi a je uložený v počítači používateľa. Vo väčšine prehľadávačov je každý súbor cookie uložený ako malý súbor, ale vo prehliadači Firefox sú všetky uložené v jednom súbore. Cookies sú reprezentované ako páry kľúč - hodnota a môžete ich využiť na čítanie, zápis alebo mazanie cookies.

ASP.NET Core používa súbory cookie na udržanie stavu relácie; cookie, ktorý obsahuje ID relácie, sa klientovi odošle s každou požiadavkou. Tento článok predstavuje diskusiu o tom, ako môžeme pracovať s cookies v ASP.NET Core.

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt ASP.NET Core MVC v Visual Studio

Najprv si vytvoríme projekt ASP.NET Core MVC v Visual Studio 2019. Za predpokladu, že je vo vašom systéme nainštalovaný Visual Studio 2019, vytvorte nový projekt ASP.NET Core MVC v Visual Studio podľa krokov uvedených nižšie.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Webová aplikácia ASP.NET Core“.
  4. Kliknite na Ďalej.
  5. V okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Prípadne začiarknite políčko „Umiestniť riešenie a projekt do rovnakého adresára“.
  7. Kliknite na tlačidlo Vytvoriť.
  8. V nasledujúcom okne „Vytvorenie novej webovej aplikácie ASP.NET Core“ vyberte z rozbaľovacieho zoznamu v hornej časti .NET Core ako runtime a ASP.NET Core 2.2 (alebo novší).
  9. Vyberte „Webová aplikácia (Model-View-Controller)“ ako šablónu projektu na vytvorenie novej aplikácie ASP.NET Core MVC.
  10. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“, pretože tu nebudeme tieto funkcie používať.
  11. Skontrolujte, či je overenie nastavené na „Bez overenia“, pretože ani tu nebudeme používať overenie.
  12. Kliknite na tlačidlo Vytvoriť.

Teraz by ste mali mať nový projekt ASP.NET Core MVC pripravený na použitie v Visual Studio. Tento projekt použijeme v ďalších častiach tohto článku.

Prečítajte si súbor cookie v ASP.NET Core

Môžete si prečítať súbor cookie z kolekcie Request.Cookies. Nasledujúci úryvok kódu ilustruje, ako môžete načítať súbor cookie z objektu Request v ASP.NET Core.

string cookie = Request.Cookies ["Kľúč"];

Ak chcete určiť čas vypršania platnosti súboru cookie, môžete použiť preťaženú verziu metódy Append, ako je uvedené v útržku kódu uvedenom nižšie.

Možnosť CookieOptions = nové CookieOptions ();

option.Expires = DateTime.Now.AddMilliseconds (10);

Response.Cookies.Append (kľúč, hodnota, možnosť);

Trieda CookieOptions umožňuje pri vytváraní súboru cookie určiť nasledujúce ďalšie vlastnosti:

  • Doména - slúži na zadanie domény spojenej so súborom cookie
  • Čas exspirácie - používa sa na určenie času expirácie súboru cookie
  • Cesta - používa sa na určenie cesty k súboru cookie
  • Bezpečnostná politika - slúži na určenie, či je súbor cookie prístupný cez HTTPS
  • HttpOnly - používa sa na určenie, či je súbor cookie k dispozícii iba pre server

Napíšte súbor cookie do ASP.NET Core

Na zápis súboru cookie môžete využiť metódu Append, ktorá sa týka objektu Request. Nasledujúci úryvok kódu ilustruje, ako je to možné dosiahnuť.

Response.Cookies.Append (somekey, somevalue);

Odstráňte cookie v ASP.NET Core

Na odstránenie súboru cookie môžete použiť metódu Odstrániť z kolekcie cookies, ktorá sa týka objektu Request. Nasledujúci úryvok kódu ukazuje, ako je to možné dosiahnuť.

Response.Cookies.Delete (somekey);

Prístup k HttpContext v ASP.NET Core

V tejto časti preskúmame, ako môžeme pracovať s údajmi súborov cookie v ASP.NET Core. Na prístup k objektu Request budeme musieť získať prístup k HttpContext. K HttpContext máte prístup v ASP.NET Core pomocou rozhrania IHttpContextAccessor. Trieda HttpContextAccessor implementuje toto rozhranie.

Najprv by ste mali zaregistrovať IHttpContextAccessor pre vkladanie závislostí. Nasledujúci úryvok kódu ilustruje, ako môžete pridať singletonovú službu typu HttpContextAccessor v metóde ConfigureServices triedy Startup.

public void ConfigureServices (služby IServiceCollection)

        {

služby.AddSingleton<>

HttpContextAccessor> ();

// Iný kód

        }

Môžete využiť výhod injekcie závislostí a získať odkaz na inštanciu IHttpContextAccessor. To vám zase poskytne odkaz na HttpContext.

Nasledujúci úryvok kódu ilustruje, ako máte prístup k inštancii IHttpContextAccessor v radiči. Upozorňujeme, že HomeController sa predvolene vytvára pri vytváraní nového projektu ASP.NET Core MVC v Visual Studio.

verejná trieda HomeController: Ovládač

{

súkromné ​​iba na čítanie IHttpContextAccessor _httpContextAccessor;

verejný HomeController (IHttpContextAccessor httpContextAccessor)

  {

this._httpContextAccessor = httpContextAccessor;

  }   

// Sem napíš svoje metódy konania

}

Zapisujte údaje súborov cookie do svojej metódy radiča ASP.NET Core

Na zapísanie údajov cookies do vášho ovládača môžete použiť nasledujúci postup.

public IActionResult Write (kľúč reťazca, hodnota reťazca, bool isPersistent)

  {

Možnosti CookieOptions = nové CookieOptions ();

if (isPersistent)

options.Expires = DateTime.Now.AddDays (1);

inak

options.Expires = DateTime.Now.AddSeconds (10);

_httpContextAccessor.HttpContext.Response.Cookies.Append

(kľúč, hodnota, možnosti);

return View ("WriteCookie");

  }

Čítajte údaje o cookies vo svojej metóde radiča ASP.NET Core

Po úspešnom zápise údajov o súboroch cookie môžete pomocou nasledujúcej metódy načítať údaje o súboroch cookie vo vašom ovládači.

public IActionResult Read (reťazcový kľúč)

  {

ViewBag.Data =

_httpContextAccessor.HttpContext.Request.Cookies [kľúč];

return View ("ReadCookie");

  }

Ak chcete skontrolovať, či bol súbor cookie napísaný správne, môžete skontrolovať medzipamäť súborov cookie vášho webového prehliadača. V budúcom príspevku preskúmame, ako môžeme pracovať s autentifikáciou a autorizáciou na základe súborov cookie v ASP.NET Core.

$config[zx-auto] not found$config[zx-overlay] not found