我如何获得一个cookie对象的所有键或值?

时间:2016-02-18 11:40:18

标签: c# linq cookies

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

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个字段。

我在这里有两个问题。

Q1。是否可以将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");

如果是,那么如何,如果没有那么为什么?

Q2。如果Q1的答案为否,则可以使用cookie对象访问密钥名称。

例如

我有Cookie对象cAdmin,我想访问此对象中的所有键名称,如cAdmin.keyname

因为记住所有键名都很困难。请帮忙。

1 个答案:

答案 0 :(得分:0)

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