.net Cookie的用法

.NET8 缓存魔法大揭秘:5种方法让你的应用飞速提升 有时候,内置的缓存机制可能无法满足特定的需求。这时,你可以自定义缓存实现。例如,使用创建一个简单的线程安全的缓存。通过本文的详细介绍,相信你已经掌握了 .NET 8 中的多种缓存方法。无论是内存缓存、分布式缓存、HTTP 缓存,还是自定义缓存,都能帮助你显著提升应用的性能和响应速度。如果你有任何问题或建议,欢迎在评论区留言交流哦!😊😊😊👋👋👋希望这篇文章能帮助你在 .NET 8 中更加高效地使用缓存技术,确保应用的高性能和高可用性。如果你觉得有用,不妨分享给更多的人吧!🎉🎉🎉。 阅读详情

.net Cookie的用法

摘自:http://apps.hi.baidu.com/share/detail/30870201

0.相关概念及知识

Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法。
例如,当用户访问您的站点时,
您可以使用 Cookie 存储用户首选项或其他信息。
当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息。


什么是 Cookie?

Cookie 是一小段文本信息,
伴随着用户请求和页面在 Web 服务器和浏览器之间传递。
Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

例如,
如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面,
还有一个包含日期和时间的 Cookie,
用户的浏览器在获得页面的同时还获得了该 Cookie,
并将它存储在用户硬盘上的某个文件夹中。

以后,如果该用户再次请求您站点中的页面,
当该用户输入 URL 时,浏览器便会在本地硬盘上查找与该 URL 关联的 Cookie。
如果该 Cookie 存在,浏览器便将该 Cookie 与页请求一起发送到您的站点。
然后,应用程序便可以确定该用户上次访问站点的日期和时间。
您可以使用这些信息向用户显示一条消息,也可以检查到期日期。

Cookie 与网站关联,而不是与特定的页面关联。
因此,无论用户请求站点中的哪一个页面,浏览器和服务器都将交换 Cookie 信息。
用户访问不同站点时,各个站点都可能会向用户的浏览器发送一个 Cookie;
浏览器会分别存储所有 Cookie。

使用 Cookie 能够达到多种目的,所有这些目的都是为了帮助网站记住用户。
例如,一个实施民意测验的站点可以简单地将 Cookie 作为一个 Boolean 值,
用它来指示用户的浏览器是否已参与了投票,这样用户便无法进行第二次投票。
要求用户登录的站点则可以通过 Cookie 来记录用户已经登录,
这样用户就不必每次都输入凭据。


Cookie 的限制

大多数浏览器支持最大为 4096 字节的 Cookie。
由于这限制了 Cookie 的大小,最好用 Cookie 来存储少量数据,
或者存储用户 ID 之类的标识符。
用户 ID 随后便可用于标识用户,以及从数据库或其他数据源中读取用户信息。

浏览器还限制站点可以在用户计算机上存储的 Cookie 的数量。
大多数浏览器只允许每个站点存储 20 个 Cookie;
如果试图存储更多 Cookie,则最旧的 Cookie 便会被丢弃。
有些浏览器还会对它们将接受的来自所有站点的 Cookie 总数作出绝对限制,
通常为 300 个。

虽然 Cookie 在应用程序中非常有用,但应用程序不应依赖于能够存储 Cookie。
不要使用 Cookie 支持关键功能。如果应用程序必须依赖于 Cookie,
则可以通过测试确定浏览器是否将接受 Cookie。


1.编写和保存Cookie

复制 保存
//保存用户名和密码
protected void Button1_Click(object sender, EventArgs e)
{
    //因为涉及到密码等的保存 最好是用MD5等加密后 再保存
    Response.Cookies["userInfo"]["userName"] = this.txt_UserName.Text.Trim();
    if (this.chk_SavePWD.Checked)
        Response.Cookies["userInfo"]["userPassword"] = this.txt_UserPassword.Text.Trim();
    Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);
    //或
    //HttpCookie aCookie = new HttpCookie("userInfo");
    //aCookie.Values["userName"] = this.txt_UserName.Text.Trim();
    //if (this.chk_SavePWD.Checked)
    //    aCookie.Values["userPassword"] = this.txt_UserPassword.Text.Trim();
    //aCookie.Expires = DateTime.Now.AddDays(-1);//立即失效
    //Response.Cookies.Add(aCookie);
}


2.列举Cookie
复制 保存
//列出相关Cookie
protected void Button2_Click(object sender, EventArgs e)
{
    System.Text.StringBuilder output = new System.Text.StringBuilder();
    HttpCookie aCookie;
    string subkeyName;
    string subkeyValue;

    for (int i = 0; i < Request.Cookies.Count; i++)
    {
        aCookie = Request.Cookies[i];
        output.Append("Name = " + aCookie.Name + "<br />");
        if (aCookie.HasKeys)
        {
            for (int j = 0; j < aCookie.Values.Count; j++)
            {
                subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]);
                subkeyValue = Server.HtmlEncode(aCookie.Values[j]);
                output.Append("Subkey name = " + subkeyName + "<br />");
                output.Append("Subkey value = " + subkeyValue +
                    "<br /><br />");
            }
        }
        else
        {
            output.Append("Value = " + Server.HtmlEncode(aCookie.Value) +
                "<br /><br />");
        }
    }
    this.Label1.Text = output.ToString();
}


3.读取Cookie
复制 保存
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //读取相关保存值
        if (Request.Cookies["userInfo"] != null)
        {
            this.txt_UserName.Text = Request.Cookies["userInfo"]["userName"];
            this.txt_UserPassword.Text = Request.Cookies["userInfo"]["userPassword"];
            //或
            //System.Collections.Specialized.NameValueCollection UserInfoCookieCollection;
            //UserInfoCookieCollection = Request.Cookies["userInfo"].Values;
            //this.txt_UserName.Text =
            //    Server.HtmlEncode(UserInfoCookieCollection["userName"]);
            //this.txt_UserPassword.Text =
            //    Server.HtmlEncode(UserInfoCookieCollection["userPassword"]);
        }
    }
}


4.修改和删除 Cookie

修改Cookie

不能直接修改 Cookie。
更改 Cookie 的过程涉及创建一个具有新值的新 Cookie,
然后将其发送到浏览器来覆盖客户端上的旧版本 Cookie。

删除Cookie

删除 Cookie(即从用户的硬盘中物理移除 Cookie)是修改 Cookie 的一种形式。
由于 Cookie 在用户的计算机中,因此无法将其直接移除。
但是,可以让浏览器来为您删除 Cookie。
该技术是创建一个与要删除的 Cookie 同名的新 Cookie,
并将该 Cookie 的到期日期设置为早于当前日期的某个日期。
当浏览器检查 Cookie 的到期日期时,浏览器便会丢弃这个现已过期的 Cookie。
下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法:
复制 保存
HttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;

for (int i = 0; i < limit; i++)
{
    cookieName = Request.Cookies[i].Name;
    aCookie = new HttpCookie(cookieName);
    aCookie.Expires = DateTime.Now.AddDays(-1);
    Response.Cookies.Add(aCookie);
}


修改或删除子键
复制 保存
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);


修改单个子键的方法与创建它的方法相同,如下面的示例所示:
若要删除单个子键,可以操作 Cookie 的 Values 集合,该集合用于保存子键。
首先通过从 Cookies 对象中获取 Cookie 来重新创建 Cookie。
然后您就可以调用 Values 集合的 Remove 方法,
将要删除的子键的名称传递给 Remove 方法。
接着,将 Cookie 添加到 Cookies 集合,
这样 Cookie 便会以修改后的格式发送回浏览器。
下面的代码示例演示如何删除子键。
在此示例中,要移除的子键的名称在变量中指定。
复制 保存
string subkeyName;
subkeyName = "userName";
HttpCookie aCookie = Request.Cookies["userInfo"];
aCookie.Values.Remove(subkeyName);
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);



5.Cookie和安全性

Cookie 的安全性问题与从客户端获取数据的安全性问题类似。
在应用程序中,Cookie 是另一种形式的用户输入,
因此很容易被他们非法获取和利用。
由于 Cookie 保存在用户自己的计算机上,
因此,用户至少能看到您存储在 Cookie 中的数据。
用户还可以在浏览器向您发送 Cookie 之前更改该 Cookie。

千万不要在 Cookie 中存储敏感信息,如用户名、密码、信用卡号等等。
不要在 Cookie 中放置任何不应由用户掌握的内容,
也不要放可能被其他窃取 Cookie 的人控制的内容。

同样,不要轻信从 Cookie 中得到的信息。
不要假定数据与您写出时相同;
处理 Cookie 值时采用的安全措施
应该与处理网页中用户键入的数据时采用的安全措施相同。
本主题前面的示例演示在页面中显示值前,
先对 Cookie 内容进行 HTML 编码的方法,
这与在显示从用户处得到的任何信息之前的做法相同。

Cookie 以明文形式在浏览器和服务器间发送,
任何可以截获 Web 通信的人都可以读取 Cookie。
可以设置 Cookie 属性,
使 Cookie 只能在使用安全套接字层 (SSL) 的连接上传输。
SSL 并不能防止保存在用户计算机上的 Cookie 被读取或操作,
但可防止 Cookie 在传输过程中被读取,
因为 Cookie 已被加密。


6.设定IE浏览器是否接受Cookie

1).启动IE;
2).在“工具”菜单上,单击“Internet选项”,打开“Internet选项”对话框;
3).单击“隐私”选项卡,将滑块上移到更高的隐私级别。
    如果移动到最顶端则是选择“阻止所有的Cookie”,
    此时系统将阻止所有网站的Cookie,而且网站不能读取计算机上已有的Cookie;
4).单击“确定”按钮。

出自:http://www.chenjiliang.com/Article/View.aspx?ArticleID=2609

.net 获取浏览器Cookie(包括HttpOnly)实例分享 介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下 立即下载

相关推荐

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7344

【转】细说Cookie

Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态,所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述,也算是本人对Cookie的认识总结。 Cookie 概述 Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Coo...

weixin_34280237的博客 256

Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)CDC问题单比特信号的跨时钟域问题从快时钟域到慢时钟域从慢时钟域到快时钟域多比特信号的跨时钟域问题异步FIFO握手协议 今天先写单比特信号从快时钟域到慢时钟域的方法,后续继续填坑 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 设计思想   从慢时钟域到快时钟域通常使用打两拍的方法,这也适用于从快时钟域到慢时钟域时,但是如果当单比特信号持续时间小于快时钟域的一个周期时,需要用展宽信号再打两拍的方法。 设计相关代码 module Sync_

weixin_44425619的博客 9359

Cookie 与 自动保存

0.相关概念及知识1.编写和保存Cookie2.列举Cookie3.读取Cookie4.修改和删除Cookie5.Cookie和安全性6.设定IE浏览器是否接受Cookie======================================================0.相关概念及知识==================Cookie 提供了一种在 Web 应用程序中存储用户

freeliver54的专栏 713

Cisco Firepower FMCv修改管理Ip方法

Cisco Firepower FMCv修改管理Ip方法

funnycoffee123的博客 1091

UFS Write Booster技术解析:原理、配置与故障排查实战

在存储技术领域,缓存机制是提升I/O性能的核心手段之一,其原理是通过高速存储介质暂存数据,减少对低速主存储的直接访问,从而降低延迟、提升吞吐。Write Booster正是这一原理在UFS(通用闪存存储)规范中的具体实现,它通过引入独立的易失性高速缓存区(Write Booster Buffer),将主机写入命令快速响应与后台数据持久化分离,技术价值在于显著改善随机写入性能,消除由垃圾回收等后台操作引发的写入卡顿。该技术广泛应用于智能手机应用安装、相机连拍、固件升级(OTA)等对写入流畅性要求高的场景。本文

weixin_42561143的博客 356

ASP.NET MVC cookie存取和设置过期时间

ASP.NET cookie存取和设置过期时间 ASP.NET Cookie和Session - 15037075275z - 博客园 创建 //第一种 Response.Cookies["userName"].Value = "patrick"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);//存的时候指定过期时间 //第二种 HttpCookie aCookie = new HttpCookie("lastVis

qq_18932003的博客 2295

Python爬虫抓取学术期刊数据(Springer、Elsevier)

本文详细介绍了如何使用Python爬虫抓取学术期刊网站(如Springer、Elsevier)上的文章信息,并进行数据清洗和存储。我们使用了requestsSeleniumpandas等技术,通过模拟浏览器行为来绕过反爬虫机制,并将数据保存为Excel文件,方便后续分析。未来,我们可以通过加入更多的期刊网站数据源,扩展爬虫的功能,抓取更多的学术数据。同时,结合自然语言处理(NLP)技术,可以对抓取的文章进行自动化的摘要提取和主题分类,为学术研究提供更多的支持。

2201_76125261的博客 1487

.net Cookie原理与使用

HttpCookie    创建Cookie对象 cookieName.Expires   设置过期时间 Response.Cookies.Add(cookieName);  添加到Cookies集合中(保存) Request.Cookies["cookieName"].Value(); 取指定Cookie值  Cookie是存储在客户端的一小段文本数据,通常浏览器支持最大4096字节(大

仲权的专栏 1340

国产数据库全解析:openGauss、OceanBase、TiDB与KingbaseES的核心优势与应用场景指南

本文将深入剖析openGauss、OceanBase、TiDB和KingbaseES这四款主流国产数据库的核心内容,并针对国产化过程中给出使用建议,以帮助企业根据自身需求选择合适的数据库解决方案。国产数据库在性能、扩展性、兼容性、安全性等方面展现出强大实力,能够满足不同行业、不同场景的需求。企业在进行国产化过程中,应充分考虑业务特点、技术栈、团队能力等因素,结合上述分析,选择最适合自身的国产数据库产品。随着国产数据库技术的持续发展与生态完善,它们将成为推动企业数字化转型、保障数据安全的重要力量。

java专栏 8779

Node-RED教程(二):Node-RED的面板的操作

Node-RED系列(二):Node-RED的面板的操作 要使用Node-RED去搭建一个物联网平台,链接设备,设备通信,就必须要先熟悉Node-RED的这种面板,对于一个新的项目,在动手做之前一点想对这个的技术的文档有足够的了解做起来才能游刃有余。本期我给大家介绍一下Node-RED的各种面板,熟悉这些面板后,在后续的搭建Iot服务中,会举重若轻,同时该系列的文档,难度会逐步加深,知道了本章解释的名称后对后续文章的理解有很大帮助。 面板1:默认节点选项列表 安装Node-RED后默认的节点分为这5大类

知无涯 1万+

ASP.NET中Cookie的用法

ASP.NET中Cookie的用法

syaguang2006的专栏 1297

LVGL core disp显示设计(lv_disp.c)

lv_disp.c当前显示页面的配置scr_act在原始的LVGL是以screen的概念存在,但我们还是习惯叫它为一个页面提供获取top_layer、sys_layer、prev_scr图层接口配置主题管理默认的主题管理是递归查找的,实际项目中因此页面的复杂性,虽然也兼容了此主题管理的方案,但还是推荐使用单页面自行管理主题的方案壁纸设置多页面切换的动画支持计算无用户操作时间清理显示缓存。

Bigan(安)的博客 2331

asp.net中Cookie的用法

比如建立一个名为aspcn,值为灌水小鱼的cookie 1 HttpCookie cookie = new HttpCookie["aspcn"]; 2 cookie.Value = "灌水小鱼"; 3 Response.AppendCookie(cookie); 取出Cookie值也很简单 1 HttpCookie cookie = Request.Cook...

126

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

在Asp.net 中Cookie的用法

在Asp.net 中Cookie的用法

海乐学习 387

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

.net中Cookie的用法

Response.Cookies["name"].Value = name;写入cookies TextBox3.Text = Request.Cookies["name"].Value;读取cookies Response.Cookies["name"].Expires = DateTime.Now;清空cookies cookie 是一小段文本信息,伴随用户请求,在web服务器和浏览器之

小麦先生 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ASP.NET中Cookie用法小节

Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及...

177

asp.net中关于cookie的用法

一、添加cookie  1.单值cookie的写法HttpCookie acookie = new HttpCookie("myCookie");acookie.Value="a";acookie..Expires=DateTime.MaxValue; Response.Cookies.Add(acookie); 2.多值Cookie的写法 :HttpCookie cookie1 = ne

Mr_LiShao的博客 603

ASP.NET中cookie的用法

<br /><br />比如建立一个名为aspcn,值为灌水小鱼的cookie<br /> <br />先判断是否为空或者是否有效 不是空的就执行以下语句<br /> <br />if(Request.Cookies[ "mcookies "]!=null)    <br /> <br />HttpCookie cookie = new HttpCookie["aspcn"];<br />cookie.Value = "灌水小鱼";<br />Response.AppendCookie(cookie);<b

alan_219_2008的专栏 692

asp.net cookie 的用法

cookie常见的用法 以下为cookie用的代码 设置cookie 的时候一定要设置上path,如果页面跳转,页面加载路径同设置cookie 的路径不一致,则设置的cookie将会被清空。 //设置cookie function setSCookie(name, value) { delSCookie("MenuId"); var exp = new Date()

xueqh的博客 396

Asp.net Cookie的用法

比如建立一个名为aspcn,值为灌水小鱼的cookie HttpCookie cookie = new HttpCookie["aspcn"]; cookie.Value = "灌水小鱼"; Response.AppendCookie(cookie); 取出Cookie值也很简单 HttpCookie cookie = Request.Cookies["aspcn"]; c

lingdu_YY的专栏 440

ASP.NET Application,Session,Cookie和ViewState等对象用法和区别

在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。方法信息量大小作用域和保存时间应用范围保存位置Application任意大小整个应用程序的生命期整个应

Baple的专栏 859

ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。 方法 信息量大小 作用域和保存时间 应用范围 ...

anxian8458的博客 70

Asp.net中Cookie用法

1.Cookie加入   // 声明出Cookie HttpCookie objCookie = new HttpCookie("comauth");// 设置Cookie子键和值objCookie.Values["uid"] = "1000001";objCookie.Values["comid"] = "suzuki";// 加入CookieRespo

238
上一篇: 天气预报代码
下一篇: C#——可空值类型
VS_URL
博客等级 码龄15年 12粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值