Explain SERVER-SIDE STRATEGIES: SESSION STATE, TEMP DATA,USING HTTPCONTEXT

 SERVER-SIDE STRATEGIES: SESSION STATE, TEMP DATA, USING HTTPCONTEXT

1)Session State

  •  Session state is an ASP.NET Core mechanism to store user data while the user browses the application.
  • It uses a store maintained by the application to persist data across requests from a client. We should store critical application data in the user’s database and we should cache it in a session only as a performance optimization if required.
  • ASP.NET Core maintains the session state by providing a cookie to the client that contains a session ID. The browser sends this cookie to the application with each request. The application uses the session ID to fetch the session data.


A Session State Example

  • We need to configure the session state before using it in our application. This can be done in the ConfigureServices() method in the Startup. cs class:

         services.AddSession();

  •  The order of configuration is important and we should invoke the UseSession() before invoking UseMVC().
  •  Let’s create a controller with endpoints to set and read a value from the session:


public class WelcomeController: Controller

{

public IActionResult Index() {

HttpContext.Session.SetString("Name", "John");

HttpContext.Session.SetInt32("Age", 32);

return View();

}

public IActionResult Get()

{

User u = new User()


{

Name= HttpContext.Session.GetString("Name"),

Age= HttpContext.Session.GetInt32("Age").Value

};

return View(u);

}

}


  • The Index() method sets the values into session and Get() the method reads the values from the session and passes them into the view.
  • Let’s auto-generate a view to display the model values by right-clicking on the Get() method and using the “Add View” option.
  • Now let’s run the application and navigate to /welcome.
  • This will set the session values.
  • Now let’s navigate to /welcome/get:


2) TempData

  • TempData property which can be used to store data until it is read.
  • TempData is particularly useful when we require the data for more than a single request. We can access them from controllers and views.
  • TempData is implemented by TempData providers using either cookies or session state.

Example

  • Let’s create a controller with three endpoints. In the First() method, let’s set a value into TempData. Then let’s try to read it in Second() and Third() methods:

public class TempDataController: Controller{

public IActionResult First(){

TempData["UserId"]= 101;

return View();

}

public IActionResult Second(){

var userId= TempData["UserId"] ?? null;

return View();

}

public IActionResult Third(){

var userId= TempData["UserId"] ?? null;

return View();

}

}


3) Using HttpContext

  •  A HttpContext object holds information about the current HTTP request. The important point is, whenever we make a new HTTP request or response then the Httpcontext object is created. Each time it is created it creates a server current state of an HTTP request and response.
  • It can hold information like Request, Response, Server, Session, Item, Cache, User's information like authentication and authorization, and much more.
  • As the request is created in each HTTP request, it ends too after the finish of each HTTP request or response.


Example to Check request processing time using

HttpContext class

This example checks the uses of the HttpContext class. In the global.aspx page we know that a BeginRequest() and EndRequest() is executed every time before any HTTP request. In those events, we will set a value to the context object and will detect the request processing time.


protected void Application_BeginRequest(object sender, EventArgs e) {

HttpContext.Current.Items.Add("Begintime", DateTime.Now.ToLongTimeString());

}

protected void Application_EndRequest(object sender, EventArgs e) {

TimeSpan diff = Convert.ToDateTime(DateTime.Now.ToLongTimeString()) -

Convert.ToDateTime(HttpContext.Current.Items["Begintime"].ToString());

}

Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Discuss classification or taxonomy of virtualization at different levels.