loading

심재운 블로그

반응형

 

 

ASP.NET session 상태를 web application 에서 asp.net 페이지를 사용하여 사용자별 정보를 설정 및 가져올 수 있다.

Session 값은 사이트에서 사용자별로 session 의 활성 시간동안 저장되어진다. 대부분의 경우, 이는 서버 메모리에 저장된다.

 

또한 sql server 또는 state server 에 세션의 값을 저장할 수 있도록 환경설정도 가능하다. asp.net mvc 에서 HttpContext 를 사용하여 세션 변수에 접근하여 생성할 수 있다.

 

asp.net 5 에서는 asp.net team 이 Session 관리에 대한 미들웨어를 개발했다.

 

이제 asp.net  5 Session Middleware  사용하는 방법을 알아보자.

 

 

1. 먼저 project.json 파일에 Microsoft.AspNet.Session”: “1.0.0-*” 참조를 기술한다.

 

2. Startup.cs 파일에 ConfigureServices() 메소드를 session 미들웨어에 아래와 같이 추가한다.

 

public void ConfigureServices(IServiceCollection services)
{
    services.AddCaching();
    services.AddSession();
    services.AddMvc();
}


3. configure() 메소드에서 UseSession() 확장 메소드를 추가한다. 유지 시간은 30분으로 하였다.

 

public void Configure(IApplicationBuilder app)
{
    app.UseSession(configure: s => s.IdleTimeout = System.TimeSpan.FromMinutes(30));
    app.UseErrorPage();
    app.UseStaticFiles();
    app.UseMvc(routes =>
    {
        routes.MapRoute("default", "//");
    });
}

 


4. Context object 에 session 을 관리할 수 있도록 하는 코드를 기술한다.

 

 

여기서 session 값을 설정하는 3가지 방법이 존재한다. SetInt, SetString 그리고 Set 이다. 이는 byte array 를 파라미터로 가져오는 방법을 취한다.

 

그리고 session 값을 가져오기 위해 3개의 메소드도 존재한다. GetInt, GetString, 그리고 Get 이 있따. 이는 key 에 대한 byte 배열을 반환한다.

 

만악에 session 에서 custom type 을 저장하길 원한다면, Get / Set 메소드를 사용해야 한다. 그리고 serialization 그리고 de-serialization 로직을 구현할 필요가 있다.

 

 

//Setting the session values
Context.Session.SetString("Name","shimjaewoon");
Context.Session.SetString("Address", http://aspdotnet.tistory.com);


//Getting the session values
Name = Context.Session.GetString("Name"),
Address = Context.Session.GetString("Address")

 

 

 

 

 

 

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band

댓글

비밀글모드