我如何使用一个 cookie 对象获取所有键或值

本文关键字:获取 对象 cookie 一个 何使用 | 更新日期: 2023-09-27 18:35:21

我使用 cookie 将数据发送到其他页面。

var list = (from d in dc.Admins
                                where d.AdminId == data.UserId
                                select d).FirstOrDefault();
                    // Make object for cookie
                    HttpCookie cAdmin = new HttpCookie("cAdmin");
                    // now add values to cookie cAdmin
                    cAdmin.Values.Add("adminId",list.AdminId.ToString());
                    cAdmin.Values.Add("adminName",list.Name.ToString());
                    Response.Cookies.Add(cAdmin);
                    // you also set expires time
                    //cAdmin.Expires = DateTime.Now.AddDays(1);
                    Response.Redirect("~/Admin Folder/MainPageAdmin.aspx");

并在名为 MainPageAdmin.aspx 的页面中获取值。

string adminId = Request.Cookies["cAdmin"]["adminId"];
            string adminName = Request.Cookies["cAdmin"]["adminName"];
            lblAdminId.Text = adminId;
            lblAdminName.Text = adminName;

现在它只有两个用于测试目的的键,但我想发送完整的对象。它包含 10 - 15 个字段。

我这里有两个问题。

问题 1.是否可以将LINQ查询结果的对象添加到cookie中。

例如

var list = (from d in dc.Admins
                                where d.AdminId == data.UserId
                                select d).FirstOrDefault();
                    // Make object for cookie
                    HttpCookie cAdmin = new HttpCookie("cAdmin");
                    // now add complete oject to cookie cAdmin
                    cAdmin.Values.Add("admin","list");
如果是,那么

如何以及如果不是,那么为什么?

问题 2.如果 Q1 的答案是否定的,那么是否可以使用 cookie 对象访问键名。

例如

我有cookie对象cAdmin,我想像cAdmin.keyname一样从这个对象访问所有键名。

因为要记住所有键的名称是非常困难的。请帮忙。

我如何使用一个 cookie 对象获取所有键或值

var list = (from d in dc.Admins
                            where d.AdminId == data.UserId
                            select d).FirstOrDefault().ToDictionary<TKey,Tvalue>(delegateMethod);
foreach(var entry in list)
{
   cAdmin.Values.Add(entry.Key,entry.Value);
}