Home Backend Development C#.Net Tutorial Analyze how Asp.net uses Session

Analyze how Asp.net uses Session

May 10, 2017 am 10:49 AM
asp.net core session

Session is a method to save the session state of users and web applications. ASP.NET Core provides a middleware for managing session state. This article mainly introduces the use of Session in Asp.net Core. If you are interested You can find out more about it,

Preface

2017 started quietly, and 2017 is another particularly important year for me.

I wrote an Asp.net Core at home during the New Year's Day holidayVerification codeLog in. I encountered two small problems during the demo process. The first was to reference the dll in Asp.net Core. In the past, we referenced DLL directly. This is not possible in Core. It must be added based on NuGet, or added based on project.json, and then saving the VS will start to restore the class library.

The second is the problem of using Session. To use Session in Core, you need to add the Session class library.

Add Session

Add based on NuGet on your project: Microsoft.AspNetCore.Session.

Modify startup.cs

Find the method ConfigureServices(IServiceCollection services) in startup.cs and inject Session (this place is Asp.net Core pipeline):services.AddSession();

Next we need to tell Asp.net Core to use memory to store Session data and add code in Configure(IApplicationBuilder app,...): app.UserSession( );

Session

1. Use HttpContext.Session

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<a href="https://www.php.cn/wiki/1536.html" target="_blank">using Microsoft.AspNetCore.Http;

 

public class HomeController:Controller

{

   public IActionResult Index()

   {

       HttpContext.Session.SetString("code","123456");

       return View();

    }

 

    public IActionResult About()

    {

       ViewBag.Code=HttpContext.Session.GetString("code");

       return View();

    }

}</a>

#1 in

MVC

Controller. 2. If it is not in Controller , you can inject IHttpContextAccessor

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class SomeOtherClass

{

   private readonly IHttpContextAccessor _httpContextAccessor;

   private ISession _session=> _httpContextAccessor.HttpContext.Session;

 

   public SomeOtherClass(IHttpContextAccessor httpContextAccessor)

   {

      _httpContextAccessor=httpContextAccessor;      

   }

 

   public void Set()

   {

     _session.SetString("code","123456");

   }

   

   public void Get()

  {

     string code = _session.GetString("code");

   }

}

Copy after login

Storage complex objects

Serialize the object into a json when storing the object StringStorage.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public static class SessionExtensions

{

   public static void SetObjectAsJson(this ISession session, string key, object value)

  {

    session.SetString(key, JsonConvert.SerializeObject(value));

  }

 

  public static T GetObjectFromJson<T>(this ISession session, string key)

  {

    var value = session.GetString(key);

 

    return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);

  }

}

Copy after login

1

2

3

4

5

var myComplexObject = new MyClass();

HttpContext.Session.SetObjectAsJson("Test", myComplexObject);

 

 

var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");

Copy after login

Use SQL Server or RedisStorage

1, SQL Server

Add reference "Microsoft.Extensions.Caching. SqlServer": "1.0.0"

Injection:

1

2

3

4

5

6

7

8

// Microsoft SQL Server implementation of IDistributedCache.

// Note that this would require setting up the session state database.

services.AddSqlServerCache(o =>

{

  o.ConnectionString = "Server=.;Database=ASPNET5SessionState;Trusted_Connection=True;";

  o.SchemaName = "dbo";

  o.TableName = "Sessions";

});

Copy after login

2, Redis

Add reference "Microsoft.Extensions.Caching.Redis": "1.0.0"

Injection:

1

2

3

// Redis implementation of IDistributedCache.

// This will override any previously registered IDistributedCache service.

services.AddSingleton<IDistributedCache, RedisCache>();

Copy after login

[Related recommendations]

1.

ASP Free Video Tutorial

2.

ASP Tutorial

3.

Li Yanhui ASP basic video tutorial

The above is the detailed content of Analyze how Asp.net uses Session. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to enable Core Isolation's memory integrity feature in Windows 11 How to enable Core Isolation's memory integrity feature in Windows 11 May 10, 2023 pm 11:49 PM

Microsoft's Windows 11 2022 Update (22H2) enables CoreIsolation's memory integrity protection by default. However, if you are running an older version of the operating system, such as Windows 11 2022 Update (22H1), you will need to turn this feature on manually. Turn on CoreIsolation's Memory Integrity feature in Windows 11 For users who don't know about Core Isolation, it's a security process designed to protect basic core activities on Windows from malicious programs by isolating them in memory. This process, combined with the memory integrity feature, ensures

What does computer core mean? What does computer core mean? Sep 05, 2022 am 11:24 AM

Core has two meanings in computers: 1. The core, also known as the core, is the most important component of the CPU. All calculations, accepting storage commands, and processing data of the CPU are performed by the core; 2. Core, core is Intel's processor Name, Core is the processor brand launched by Intel after the Pentium processor. It has currently released twelfth generation Core processors.

How to set session timeout in SpringBoot Session How to set session timeout in SpringBoot Session May 15, 2023 pm 02:37 PM

The problem was found in the springboot project production session-out timeout. The problem is described below: In the test environment, the session-out was configured by changing the application.yaml. After setting different times to verify that the session-out configuration took effect, the expiration time was directly set to 8 hours for release. Arrived in production environment. However, I received feedback from customers at noon that the project expiration time was set to be short. If no operation is performed for half an hour, the session will expire and require repeated logins. Solve the problem of handling the development environment: the springboot project has built-in Tomcat, so the session-out configured in application.yaml in the project is effective. Production environment: Production environment release is

How to solve session failure How to solve session failure Oct 18, 2023 pm 05:19 PM

Session failure is usually caused by the session lifetime expiration or server shutdown. The solutions: 1. Extend the lifetime of the session; 2. Use persistent storage; 3. Use cookies; 4. Update the session asynchronously; 5. Use session management middleware.

Solution to PHP Session cross-domain problem Solution to PHP Session cross-domain problem Oct 12, 2023 pm 03:00 PM

Solution to the cross-domain problem of PHPSession In the development of front-end and back-end separation, cross-domain requests have become the norm. When dealing with cross-domain issues, we usually involve the use and management of sessions. However, due to browser origin policy restrictions, sessions cannot be shared by default across domains. In order to solve this problem, we need to use some techniques and methods to achieve cross-domain sharing of sessions. 1. The most common use of cookies to share sessions across domains

What should I do if the php session disappears after refreshing? What should I do if the php session disappears after refreshing? Jan 18, 2023 pm 01:39 PM

Solution to the problem that the php session disappears after refreshing: 1. Open the session through "session_start();"; 2. Write all public configurations in a php file; 3. The variable name cannot be the same as the array subscript; 4. In Just check the storage path of the session data in phpinfo and check whether the sessio in the file directory is saved successfully.

What is the default expiration time of session php? What is the default expiration time of session php? Nov 01, 2022 am 09:14 AM

The default expiration time of session PHP is 1440 seconds, which is 24 minutes, which means that if the client does not refresh for more than 24 minutes, the current session will expire; if the user closes the browser, the session will end and the Session will no longer exist.

How to solve the problem that the Springboot2 session timeout setting is invalid How to solve the problem that the Springboot2 session timeout setting is invalid May 22, 2023 pm 01:49 PM

Problem: Today, we encountered a setting timeout problem in our project, and changes to SpringBoot2’s application.properties never took effect. Solution: The server.* properties are used to control the embedded container used by SpringBoot. SpringBoot will create an instance of the servlet container using one of the ServletWebServerFactory instances. These classes use server.* properties to configure the controlled servlet container (tomcat, jetty, etc.). When the application is deployed as a war file to a Tomcat instance, the server.* properties do not apply. They do not apply,

See all articles