Comment stocker un objet dans un cookie?
Alors que cela est possible en C#: (Utilisateur est un L2S classe dans cet exemple)
User user = //function to get user
Session["User"] = user;
pourquoi ce n'est pas possible?
User user = //function to get user
HttpCookie cookie = new HttpCookie();
cookie.Value = user;
et comment peut-il être fait? Je ne veux pas stocker l'id de l'utilisateur dans le cookie et puis faire un peu de validation.
Btw, si possible, est-il sécurisé pour stocker un objet dans un cookie, plutôt que de seulement la carte d'identité ?
source d'informationauteur Shaokan
Vous devez vous connecter pour publier un commentaire.
Un cookie est juste des données de chaîne; la seule façon de le faire serait de sérialiser comme une chaîne de caractères (xml, json, base-64 du binaire arbitraire, peu importe), cependant, vous ne devriez pas vraiment confiance à quoi que ce soit dans un cookie si elle se rapporte à la sécurité de l'information ("qui suis-je?") un: il est facile pour l'utilisateur final afin de le modifier, et de b: vous ne voulez pas la surcharge de rien biggish à chaque requête.
De l'OMI, la mise en cache ce que le serveur est la bonne chose, ne le mettez pas cela dans un cookie.
Vous pouvez utiliser JSON
La réponse courte est: les Cookies enregistrer des chaînes, et non pas des objets binaires.
Vous pourriez sérialiser vos objet en chaînes ou en JSON si vous avez vraiment voulu. Vous suggérons de garder les données en arrière/en avant aussi léger que vous le pouvez. Rappelez-vous: chaque fois que nous communiquons à partir du navigateur vers le serveur, vous êtes de passage de toutes les données à chaque fois.
vous pourrait chiffrer un tel cookie. Le contenu (json/xml/etc) serait un peu plus sûr alors. Serveur de mise en cache côté comme Marc l'indique est probablement mieux.
Compromis: l'augmentation du trafic sur le fil (les cookies sont transmis en arrière) Vs plus grand côté serveur empreinte mémoire et /ou secondardy de stockage.
btw: n'oubliez pas que les binaires peuvent être encodés en texte si vous en avez vraiment besoin.
http://www.codeproject.com/KB/security/TextCoDec.aspx
Essayer quelque chose comme cela?
dans le cookie, vous pouvez stocker une valeur de type chaîne de caractères. vous pouvez stocker vos objets en session,de l'état d'affichage ou dans le cache. mais encore envie de stockons dans les cookies, il suffit d'utiliser le système.web.script.javascriptserialization de classe et de convertir l'ensemble de l'objet en chaîne json et ensuite le stocker sur votre cookie.
vous pouvez essayer ceci:
pour stocker un objet dans un cookie que nous avons pour le convertir en stringified présentation (compressé ou non) qui est limitée à moins de 4 ko. cet exemple montre comment garder un peu de "Acheter" de l'objet dans un cookies (enregistrer/prolonger/réinitialiser/effacer). au lieu de séparer les lignes de code que j'ai utilisé un Json pour remplir cet objet, avec quelques données.
Cookie seulement stocker des chaînes de caractères.
Ce que vous pouvez faire:
Ce doit insérer l'ensemble de l'objet de cookie.
Afin de lire à partir du cookie pour un objet: