2012-01-26 4 views
1

각 aspx 페이지에서 액세스하는 단일 정적 클래스에서 사용자 데이터로드를 처리합니다. 쿠키와 세션을 지원하는 기능을이 프로세스에 추가하고 싶습니다. 그러나 Response.Cookies 객체와 Session 객체는 모두 내 util 클래스에서 사용할 수 없다는 것을 알았습니다.ASP.net에서 어떻게 도우미 클래스의 쿠키와 세션을 사용할 수 있습니까?

기본적으로, 지금은 (그것을 자신의 파일에) 무엇 있습니다

namespace myProject 
{  
    static class myUtil 
    { 
     public static myProject.User LoadUser() 
     { 
      //Look up user 
     } 
    } 
} 

는 내가하고 싶은 무엇입니까 :

namespace myProject 
{  
    static class myUtil 
    { 
     public static myProject.User LoadUser() 
     { 
      if (Session['user'] != null) 
      { user = Session['user']; } 
      else if (Response.Cookies['user'] != null) 
      { user = Response.Cookies['user']; } 
      else 
      {    
       //Look up user 
      } 
     } 
    } 
} 

가 어떻게 이런 일이 만들 수 있습니까? 현재 구현에서는 Session 및 Response.Cookies에 대한 모든 참조가 선언되지 않은 객체로 간주됩니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Text.RegularExpressions; 
using System.Web.UI.Page; 
using System.Web.UI.WebControls; 

답변

5

세션 클래스 파일

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.SessionState; 
/// <summary> 
/// Summary description for GetSessionHelper 
/// </summary> 
public class SessionHelper : IRequiresSessionState 
{ 
    public object GetSession(string key) 
    { 
     //check session 
     if (HttpContext.Current.Session[key] != null) 
     { 
      //return session value 
      return HttpContext.Current.Session[key]; 
     } 
     else 
     { 
      //return empty string 
      return string.Empty; 
     } 
    } 
} 

쿠키

if (HttpContext.Current.Request.Cookies["CodeF"] != null) 
{ 
    string background = HttpContext.Current.Request.Cookies["CodeF"]["BackImage"].ToString(); 
     } 
+0

누군가 downvote에 대한 이유를 설명 할 수 있습니까? – Pankaj

2

당신이 HttpContext.Current.Session 및 HttpContext.Current.Request를 사용하지만, 세션의 모든 단계에서 사용할 수없는 것으로 인식 될 수 있습니다

는 참고로, 여기에 현재 클래스에 대한 수입입니다 http 파이프 라인 (예 : HttpModule을 사용하는 경우) BeginRequest에서 세션이 지정되지 않음

1

정적 HttpContext.Current 변수를 사용하여 HttpContext에서 무엇이든 얻을 수 있습니다. 이것은 정말로 권장하지 않습니다. - asp.net에 직접 코드를 연결하고 테스트 작성과 같은 작업을 왕실의 고통으로 만듭니다. 일반적으로 액세스하려는 세션 변수와 같이 종속성에서 전달할 수있는 인스턴스 클래스를 더 많이 사용할 수 있습니다.

1

당신은 다음과 같이 사용한다 HttpContext.Current.Request.Cookies [ "사용자"] 클래스 파일

관련 문제