2009-08-03 4 views
1

HttpCookies를 저장하고 검색하기 위해이 유틸리티 클래스를 작성했습니다.ASP.NET HttpCookie 도우미 클래스

그것은 작동하지 않는, 즉, 쿠키가 검색되지 않는 것 같습니다 ...

public class AspNetUtil 
    { 
     private Page _page = null; 

     public AspNetUtil(Page page) 
     { 
      _page = page; 
     } 

     public bool SaveInCookie(string cookieName, string valueKey, string valueToBeStored, int expiryTimeInMinutes) 
     { 
      bool success = false; 

      try 
      { 
       HttpCookie cookie = null; 

       if(_page.Request.Cookies[cookieName] == null) 
       { 
        cookie = new HttpCookie(cookieName); 
       } 
       else 
       { 
        cookie = _page.Request.Cookies[cookieName]; 
       } 

       cookie.Values.Add(valueKey, valueToBeStored); 

       cookie.Expires = DateTime.Now.AddMinutes(expiryTimeInMinutes); 

       _page.Response.Cookies.Add(cookie); 
      } 
      catch(Exception ex) 
      { 
       success = false; 

       throw ex; 
      } 

      return success; 
     } 

     public string GetCookieValue(string cookieName, string valueKey) 
     { 
      string cookieValue = string.Empty; 

      try 
      { 
       cookieValue = (string)_page.Response.Cookies[cookieName].Values[valueKey]; 
      } 
      catch (Exception ex) 
      { 
       cookieValue = string.Empty; 
       throw ex; 
      } 

      return cookieValue; 
     } 
    } 

사람이 문제가 될 수 있는지 말해 줄래?

+1

_ 작동하지 않습니다. 제발 좀 더 명시 적으로하십시오. –

+0

쿠키가 검색되지 않습니다. –

답변

5

"응답"은 GetCookieValue 함수에서 "요청"이어야한다고 생각합니다.

+0

요청에 대한 응답을 변경하면 null 참조 예외가 발생합니다. –

+1

요청 쿠키 컬렉션에 해당 키가 먼저 포함되어 있는지 확인하십시오. 키가 없으면 키에 의해 액세스 된 쿠키가 null이되므로 값을 가져 오면 null 포인터 예외가 발생합니다. – jkelley

+0

또한 디버그 모드에두고 쿠키에 대한 감시를 설정하여 할당 된 값이 저장되는 방법을 파헤치는 데 도움이됩니다. – jkelley