Programavimas

Kaip dirbti su slapukais ASP.NET Core

Slapukas yra duomenų dalis, paprastai naudojama saugoti informacijai apie vartotoją ir saugoma vartotojo kompiuteryje. Daugumoje naršyklių kiekvienas slapukas saugomas kaip nedidelis failas, tačiau „Firefox“ jie visi saugomi kartu viename faile. Slapukai vaizduojami kaip raktų ir verčių poros, o jūs galite pasinaudoti raktais, kad galėtumėte skaityti, rašyti ar ištrinti slapukus.

ASP.NET Core naudoja slapukus, kad palaikytų sesijos būseną; slapukas, kuriame yra seanso ID, siunčiamas klientui su kiekviena užklausa. Šiame straipsnyje aptariama, kaip mes galime dirbti su slapukais ASP.NET Core.

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

„Visual Studio“ sukurkite ASP.NET Core MVC projektą

Pirmiausia, sukurkime ASP.NET Core MVC projektą „Visual Studio 2019“. Tarkime, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują „ASP.NET Core MVC“ projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „ASP.NET Core Web Application“.
  4. Spustelėkite Pirmyn.
  5. Lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Pasirinktinai pažymėkite žymimąjį laukelį „Įdėti sprendimą ir projektą tame pačiame kataloge“.
  7. Spustelėkite Sukurti.
  8. Kitame rodomame lange „Sukurti naują ASP.NET pagrindinę žiniatinklio programą“ viršuje esančiame išskleidžiamajame sąraše pasirinkite .NET Core kaip vykdymo laiką ir ASP.NET Core 2.2 (ar naujesnę).
  9. Norėdami sukurti naują ASP.NET Core MVC programą, kaip projekto šabloną pasirinkite „Web Application (Model-View-Controller)“.
  10. Įsitikinkite, kad nepažymėti žymės langeliai „Įgalinti„ Docker “palaikymą“ ir „Konfigūruoti HTTPS“, nes čia nenaudosime tų funkcijų.
  11. Įsitikinkite, kad autentifikavimas nustatytas kaip „Be autentifikavimo“, nes čia taip pat nenaudosime autentifikavimo.
  12. Spustelėkite Sukurti.

Dabar turėtumėte turėti naują „ASP.NET Core MVC“ projektą, paruoštą naudoti „Visual Studio“. Šį projektą panaudosime tolesniuose šio straipsnio skyriuose.

Perskaitykite slapukus ASP.NET Core

Galite perskaityti slapukus iš „Request.Cookies“ kolekcijos. Šis kodo fragmentas iliustruoja, kaip galite perskaityti slapukus iš objekto „Request“ ASP.NET Core.

eilutės slapukas = Request.Cookies ["Key"];

Jei norite nurodyti slapuko galiojimo laiką, galite naudoti perkrautą „Append“ metodo versiją, kaip parodyta toliau pateiktame kodo fragmente.

CookieOptions variantas = new CookieOptions ();

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

Response.Cookies.Append (raktas, reikšmė, parinktis);

Klasė „CookieOptions“ leidžia kuriant slapuką nurodyti šias papildomas ypatybes:

  • Domenas - naudojamas nurodyti domenui, susijusiam su slapuku
  • Galiojimo laikas - naudojamas nurodyti slapuko galiojimo laiką
  • Kelias - naudojamas nurodyti slapukų kelią
  • Saugumo politika - naudojamas nurodyti, ar slapukas pasiekiamas per HTTPS
  • Tikhttp - naudojamas nurodyti, ar slapukas yra prieinamas tik serveriui

Parašykite slapuką ASP.NET Core

Norėdami rašyti slapuką, galite pasinaudoti „Append“ metodu, susijusiu su užklausa. Šis kodo fragmentas parodo, kaip tai galima pasiekti.

Response.Cookies.Append (somekey, somevalue);

Ištrinkite slapukus iš ASP.NET Core

Norėdami pašalinti slapuką, galite naudoti „Cookie“ rinkinio „Delete“ metodą, susijusį su objektu „Request“. Šis kodo fragmentas parodo, kaip tai galima pasiekti.

Atsakymas. Slapukai. Ištrinti (kažkas);

Pasiekite „HttpContext“ naudodami „ASP.NET Core“

Šiame skyriuje mes išnagrinėsime, kaip mes galime dirbti su slapukų duomenimis ASP.NET Core. Turėsime pasiekti „HttpContext“, kad galėtume pasiekti užklausos objektą. „HttpContext“ galite pasiekti „ASP.NET Core“ naudodami „IHttpContextAccessor“ sąsają. „HttpContextAccessor“ klasė įgyvendina šią sąsają.

Pirmiausia turėtumėte užregistruoti IHttpContextAccessor priklausomybės injekcijai. Šis kodo fragmentas iliustruoja, kaip galite pridėti „HttpContextAccessor“ tipo pavienės paslaugos „Startup“ klasės „ConfigureServices“ metodą.

public void „ConfigureServices“ („IServiceCollection“ paslaugos)

        {

paslaugos. „AddSingleton“<>

HttpContextAccessor> ();

// Kitas kodas

        }

Norėdami pasinaudoti nuoroda į „IHttpContextAccessor“ egzempliorių, galite pasinaudoti priklausomybės injekcija. Tai savo ruožtu pateiks nuorodą į „HttpContext“.

Šis kodo fragmentas parodo, kaip valdiklyje galite pasiekti „IHttpContextAccessor“ egzempliorių. Atminkite, kad „HomeController“ yra sukurtas pagal numatytuosius nustatymus, kai „Visual Studio“ sukuriate naują ASP.NET Core MVC projektą.

viešosios klasės „HomeController“: valdiklis

{

privatus, tik skaitomas IHttpContextAccessor _httpContextAccessor;

viešasis „HomeController“ (IHttpContextAccessor httpContextAccessor)

  {

this._httpContextAccessor = httpContextAccessor;

  }   

// Parašykite savo veiksmų metodus čia

}

Rašykite slapukų duomenis savo ASP.NET Core valdiklio metodu

Norėdami naudoti slapukų duomenis savo valdiklyje, galite naudoti šį metodą.

public IActionResult Write (eilutės raktas, eilutės vertė, talpa yra nuolatinė)

  {

„CookieOptions“ parinktys = naujos „CookieOptions“ ();

jei (yra nuolatinis)

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

Kitas

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

_httpContextAccessor.HttpContext.Response.Cookies.Append

(raktas, vertė, parinktys);

grįžti „View“ („WriteCookie“);

  }

Skaitykite slapukų duomenis savo ASP.NET Core valdiklio metodu

Kai slapukų duomenys bus sėkmingai parašyti, galite naudoti šį metodą, jei norite skaityti slapukų duomenis savo valdiklyje.

public IActionResult Read (eilutės raktas)

  {

ViewBag.Data =

_httpContextAccessor.HttpContext.Request.Cookies [raktas];

grįžti „View“ („ReadCookie“);

  }

Norėdami patikrinti, ar tinkamai parašytas slapukas, galite patikrinti savo naršyklės slapukų talpyklą. Būsimame įraše išnagrinėsime, kaip mes galime dirbti su slapukais pagrįstu autentifikavimu ir autorizavimu ASP.NET Core.

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