2009-08-03 9 views
1

J'ai écrit cette classe utilitaire pour enregistrer et récupérer des HttpCookies.ASP.NET HttpCookie helper class

Il ne semble pas fonctionner, à savoir cookies ne sont pas en cours de récupération ...

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; 
     } 
    } 

Quelqu'un peut-il me dire ce qui peut être le problème?

+1

_Qu'est-ce qui ne fonctionne pas? S'il vous plaît soyez plus explicite. –

+0

Le cookie n'est pas récupéré. –

Répondre

5

Je pense que votre "Réponse" devrait être "Demande" dans la fonction GetCookieValue

+0

La modification de la réponse à la demande donne une exception de référence nulle. –

+1

Assurez-vous que la collection de cookies de demande contient cette clé en premier ... si elle ne possède pas la clé, le cookie accessible par la clé sera null, donc obtenir sa valeur donnera une exception de pointeur nul – jkelley

+0

Aussi, il peut être utile pour le mettre en mode débogage et définir une montre sur le cookie pour creuser dans la façon dont vos valeurs assignées sont stockées. – jkelley