안녕하세요 저는
https://github.com/caozhiyuan/ClrProfiler.Trace 를 참고하여,
웹에 접속한 사용자에 대한 정보를 수집하여 로그로 생성하기 위하여 ASP.NET MVC 5의
로그인 기능(Session, Cookie가 사용되는)이 있는 웹 사이트를 제작하였고
해당 웹을 실행 시에 프로파일러를 디버깅할 수 있는 환경에서 웹 사이트 로그인 시에
생성되는 Cookie 값은 프로파일러의 HttpContext 값에서 확인할 수 있었습니다.
HttpContext에서 Session의 경우 null 값으로 넘어오는 것을 확인할 수 있었고
디버깅 시에 HttpContext를 꺼내기 이전 세션에 담긴 값은
Session '((System.Web.HttpApplication)traceMethodInfo.InvocationTarget).Session' threw an exception of type 'System.Web.HttpException' System.Web.SessionState.HttpSessionState {System.Web.HttpException}
위와 같고 메시지는 이 컨텍스트에서는 세션 상태를 사용할 수 없습니다.
입니다.
세션을 담을 때는 쿠키와 동일한 Login 메소드가 수행되는 컨트롤러에서
// insert session
HttpContext context = System.Web.HttpContext.Current;
if(context.Session["DEV_SESSION"] == null)
{
context.Session["DEV_SESSION"] = user.UserId;
System.Diagnostics.Debug.WriteLine("[DEV_SESSION] : " + context.Session["DEV_SESSION"]);
}
// insert cookie
if (System.Web.HttpContext.Current.Response.Cookies["DEV_COOKIE"] != null)
{
System.Web.HttpContext.Current.Response.Cookies["DEV_COOKIE"].Value = user.UserId;
System.Web.HttpContext.Current.Response.Cookies["DEV_COOKIE"].Expires = DateTime.Now.AddMinutes(30d);
Response.Cookies.Add(System.Web.HttpContext.Current.Response.Cookies["DEV_COOKIE"]);
}
위와 같이 담았습니다.
Cookie는 확인이 가능하지만, Session은 확인하지 못하는 이유가 있을까요?
첫 질문이라 설명이 올바르지 못한점 죄송합니다.
[최초 등록일: ]
[최종 수정일: 7/28/2021]