Programmēšana

Kā strādāt ar sīkdatnēm ASP.NET Core

Sīkdatne ir datu kopa, ko parasti izmanto, lai uzglabātu informāciju par lietotāju, un tā tiek glabāta lietotāja datorā. Lielākajā daļā pārlūkprogrammu katrs sīkfails tiek saglabāts kā mazs fails, bet pārlūkprogrammā Firefox tie visi tiek glabāti vienā failā. Sīkdatnes tiek attēlotas kā atslēgu un vērtību pāri, un jūs varat izmantot taustiņu priekšrocības, lai lasītu, rakstītu vai dzēstu sīkfailus.

ASP.NET Core izmanto sīkdatnes sesijas stāvokļa uzturēšanai; sīkfails, kurā ir sesijas ID, tiek nosūtīts klientam ar katru pieprasījumu. Šis raksts piedāvā diskusiju par to, kā mēs varam strādāt ar sīkdatnēm ASP.NET Core.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Izveidojiet ASP.NET Core MVC projektu Visual Studio

Vispirms izveidosim ASP.NET Core MVC projektu Visual Studio 2019. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core MVC projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.NET Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Pēc izvēles atzīmējiet izvēles rūtiņu “Novietot risinājumu un projektu vienā direktorijā”.
  7. Noklikšķiniet uz Izveidot.
  8. Nākamajā logā “Izveidot jaunu ASP.NET Core tīmekļa lietojumprogrammu” augšpusē esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 2.2 (vai jaunāku).
  9. Atlasiet “Web Application (Model-View-Controller)” kā projekta veidni, lai izveidotu jaunu ASP.NET Core MVC lietojumprogrammu.
  10. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  11. Pārliecinieties, vai autentifikācijai ir iestatīta vērtība “Nav autentifikācijas”, jo arī šeit mēs neizmantosim autentifikāciju.
  12. Noklikšķiniet uz Izveidot.

Tagad jums ir jābūt gatavam darbam Visual Studio jauns ASP.NET Core MVC projekts. Mēs izmantosim šo projektu šī raksta nākamajās sadaļās.

Lasiet sīkfailu ASP.NET Core

Jūs varat izlasīt sīkfailu no Request.Cookies kolekcijas. Šis koda fragments parāda, kā varat lasīt sīkfailu no pieprasījuma objekta ASP.NET Core.

virknes sīkfails = Request.Cookies ["Key"];

Ja vēlaties norādīt sīkfaila derīguma termiņu, varat izmantot pārsūtītās metodes Pievienot versiju, kā parādīts tālāk sniegtajā koda fragmentā.

CookieOptions opcija = new CookieOptions ();

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

Response.Cookies.Append (atslēga, vērtība, opcija);

Klase CookieOptions ļauj, izveidojot sīkfailu, norādīt šādus papildu rekvizītus:

  • Domēns - izmanto, lai norādītu ar sīkfailu saistīto domēnu
  • Derīguma termiņš - izmanto, lai norādītu sīkdatnes derīguma termiņu
  • Ceļš - izmanto, lai norādītu sīkfailu ceļu
  • Drošības politika - tiek izmantots, lai norādītu, vai sīkfails ir pieejams, izmantojot HTTPS
  • HttpTikai - tiek izmantots, lai norādītu, vai sīkfails ir pieejams tikai serverim

Uzrakstiet sīkfailu ASP.NET Core

Lai rakstītu sīkfailu, varat izmantot pievienošanas metodi, kas attiecas uz objektu Pieprasīt. Šis koda fragments parāda, kā to var panākt.

Response.Cookies.Append (somekey, somevalue);

Dzēsiet sīkfailu ASP.NET Core

Lai noņemtu sīkfailu, varat izmantot sīkfailu kolekcijas Dzēšanas metodi, kas attiecas uz objektu Pieprasīt. Šis koda fragments parāda, kā to var panākt.

Response.Cookies.Delete (somekey);

Piekļūstiet vietnei HttpContext ASP.NET Core

Šajā sadaļā mēs pārbaudīsim, kā mēs varam strādāt ar sīkfailu datiem ASP.NET Core. Mums būs jāpiekļūst HttpContext, lai varētu piekļūt pieprasījuma objektam. HttpContext varat piekļūt ASP.NET Core, izmantojot IHttpContextAccessor saskarni. HttpContextAccessor klase ievieš šo saskarni.

Vispirms jums jāreģistrē IHttpContextAccessor atkarības injekcijai. Šis koda fragments ilustrē, kā startēšanas klases ConfigureServices metodē var pievienot HttpContextAccessor veida vienpakalpojumu.

public void ConfigureServices (IServiceCollection pakalpojumi)

        {

pakalpojumi. AddSingleton<>

HttpContextAccessor> ();

// Cits kods

        }

Varat izmantot atkarības injekcijas priekšrocības, lai iegūtu atsauci uz IHttpContextAccessor instanci. Tas savukārt sniegs jums atsauci uz HttpContext.

Šis koda fragments parāda, kā kontrolierī varat piekļūt IHttpContextAccessor instancei. Ņemiet vērā, ka HomeController tiek izveidots pēc noklusējuma, kad Visual Studio izveidojat jaunu ASP.NET Core MVC projektu.

publiskā klase HomeController: kontrolieris

{

privāts tikai lasāms IHttpContextAccessor _httpContextAccessor;

publiskais mājas kontrolieris (IHttpContextAccessor httpContextAccessor)

  {

this._httpContextAccessor = httpContextAccessor;

  }   

// Uzrakstiet savas darbības metodes šeit

}

Rakstiet sīkfailu datus savā ASP.NET Core kontroliera metodē

Lai ierakstītu sīkdatņu datus savā kontrolierī, varat izmantot šo metodi.

public IActionResult Write (virknes atslēga, virknes vērtība, bool isPersistent)

  {

CookieOptions options = new CookieOptions ();

ja (irPastāvīgs)

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

cits

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

_httpContextAccessor.HttpContext.Response.Cookies.Append

(atslēga, vērtība, opcijas);

atgriezties View ("WriteCookie");

  }

Lasiet sīkfailu datus savā ASP.NET Core kontroliera metodē

Kad sīkfailu dati ir veiksmīgi uzrakstīti, varat izmantot šo metodi, lai kontrolierī lasītu sīkfailu datus.

public IActionResult Read (virknes atslēga)

  {

ViewBag.Data =

_httpContextAccessor.HttpContext.Request.Cookies [atslēga];

atgriezties View ("ReadCookie");

  }

Lai pārbaudītu, vai sīkfails ir uzrakstīts pareizi, varat pārbaudīt sava tīmekļa pārlūkprogrammas sīkfailu kešatmiņu. Nākamajā ziņojumā mēs pārbaudīsim, kā mēs varam strādāt ar sīkdatnēm balstītu autentifikāciju un autorizāciju ASP.NET Core.

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