Handledning för ASP.NET sessionshantering [Exempel]

ASP.NET Sessionshantering

HTTP-protokollet som alla webbapplikationer fungerar på är ett tillståndslöst protokoll. Med statslös betyder det bara att information inte lagras från en begäran till en annan.

Om du till exempel hade en inloggningssida som har 2 textrutor, en för namnet och den andra för lösenordet. När du klickar på knappen Logga in på den sidan måste applikationen se till att användarnamnet och lösenordet skickas till nästa sida.

I ASP.Net görs detta på en mängd olika sätt. Det första sättet är via ett koncept som kallas ViewState. Det är där ASP.Net automatiskt lagrar innehållet i alla kontroller. Det säkerställer också att detta skickas till nästa sida. Detta görs via en egenskap som kallas ViewState.

Det är inte idealiskt för en utvecklare att ändra något i vytillståndet. Detta beror på att det endast ska hanteras av ASP.Net.

ASP.NET Session-objekt

Det andra sättet är att använda ett objekt som kallas "sessionsobjekt". Session-objektet är tillgängligt under hela programmets livscykel. Du kan lagra valfritt antal nyckel-värdepar i Session-objektet. Så på vilken sida som helst kan du lagra ett värde i Session-objektet via kodraden nedan.

Session["Key"]=value

Detta lagrar värdet i ett Session-objekt och 'nyckel'-delen används för att ge värdet ett namn. Detta gör att värdet kan hämtas vid en senare tidpunkt. För att hämta ett värde kan du helt enkelt utfärda uttalandet nedan.

Session["Key"]

ASP.NET Sessionsobjekt Exempel

I vårt exempel kommer vi att använda Session-objektet för att lagra namnet som anges i namntextrutan på sidan. Vi kommer sedan att hämta det värdet och visa det på sidan därefter. Låt oss lägga till koden nedan i filen Demo.aspx.cs.

Använd sessionsobjektet

protected void btnSubmit_Click(object sender,EventArgs e)
{
	Session["Name"] = txtName.Text;

	Response.Write(Session["Name"]);

	lblName.Visible = false; 
	txtName.Visible = false; 
	1stLocation.Visible = false;
	chkC.Visible = false; 
	chkASP.Visible = false; 
	rdMale.Visible = false;
	rdFemale.Visible = false;
	btnSubmit.Visible = false;
}

Kodförklaring:-

  1. Den första raden med kod tar värdet av textrutan Namn och lagrar det i Session-objektet. Genom att ange koden för Session["Namn"] ger vi egenskapen ett namn som heter "Namn." Genom att ange ett namn på fastigheten blir det enklare att hämta det vid ett senare tillfälle.
  2. Nästa rad kod hämtar det lagrade värdet från Session-objektet. Den skriver sedan detta värde via 'Response.Write'-metoden tillbaka till klienten.
  3. Slutligen gör vi alla kontroller på formuläret som osynliga. Om vi ​​inte gör detta kommer alla kontroller plus våra svarsvärden att visas tillsammans.

När du har gjort ändringarna ovan kommer du att se följande utdata

Produktion:

Använd sessionsobjektet

Från utgången kan du se att sessionsvärdet för namnet hämtades och visades i webbläsaren.

Sammanfattning

  • Sessionshantering är en väg in ASP.net för att säkerställa att information överförs från en sida till en annan.
  • View state-egenskapen för en sida används för att automatiskt skicka information om kontroller från en sida till en annan.
  • Objektet 'Session' används för att lagra och hämta specifika värden på en webbsida.